yeahhhh merge pr #428
This commit is contained in:
@ -1 +0,0 @@
|
||||
funkin.me
|
7
docs/_config.yml
Normal file
7
docs/_config.yml
Normal file
@ -0,0 +1,7 @@
|
||||
theme: jekyll-theme-minimal
|
||||
title: "Kade Engine"
|
||||
description: "Kade Engine is a mod for Friday Night Funkin', including a full engine rework, replays, and more."
|
||||
show_downloads: true
|
||||
replace_index_with: "https://cors-thing.puyo.workers.dev/master/"
|
||||
logo: "https://github.com/KadeDev/Kade-Engine/raw/master/KadeEngineLogo.png"
|
||||
url: "https://KadeDev.github.io/Kade-Engine/"
|
34
docs/_includes/header.html
Normal file
34
docs/_includes/header.html
Normal file
@ -0,0 +1,34 @@
|
||||
<style>
|
||||
.headerlink {
|
||||
background-color: #555;
|
||||
color: white;
|
||||
float: none;
|
||||
border: none;
|
||||
border-style: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
padding: 14px 16px;
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.headerlink:hover {
|
||||
background-color: #777;
|
||||
color: white;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 2px !important;
|
||||
color: #555 !important;
|
||||
background-color: #555 !important;
|
||||
}
|
||||
</style>
|
||||
<center>
|
||||
<p id="HtmlIsTheWorstThingIHaveEverUsed">
|
||||
<a class="headerlink" href="{{site.url}}changelogs/">Changelogs</a>
|
||||
<a class="headerlink" href="{{site.url}}building">Building</a>
|
||||
<a class="headerlink" href="{{site.url}}modchart">Modcharts</a>
|
||||
<a class="headerlink" href="{{site.url}}guides">Guides</a>
|
||||
<br>
|
||||
<hr>
|
||||
</p>
|
||||
</center>
|
93
docs/_layouts/default.html
Normal file
93
docs/_layouts/default.html
Normal file
@ -0,0 +1,93 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ site.lang | default: "en-US" }}">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{page.title}} - Kade Engine</title>
|
||||
|
||||
{% seo %}
|
||||
<link rel="stylesheet" href="{{ "/assets/css/style.css?v=" | append: site.github.build_revision | relative_url }}">
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<header>
|
||||
<h1><a href="{{ site.url }}">{{ site.title | default: site.github.repository_name }}</a></h1>
|
||||
|
||||
{% if site.logo %}
|
||||
<img src="{{site.logo | relative_url}}" alt="Logo" />
|
||||
{% endif %}
|
||||
|
||||
<p>{{ site.description | default: site.github.project_tagline }}</p>
|
||||
|
||||
{% if site.github.is_project_page %}
|
||||
<p class="view"><a href="{{ site.github.repository_url }}">View the Project on GitHub <small>{{ site.github.repository_nwo }}</small></a></p>
|
||||
{% endif %}
|
||||
|
||||
{% if site.github.is_user_page %}
|
||||
<p class="view"><a href="{{ site.github.owner_url }}">View My GitHub Profile</a></p>
|
||||
{% endif %}
|
||||
|
||||
{% if site.show_downloads %}
|
||||
<p>
|
||||
<small>Source code</small>
|
||||
<ul class="downloads">
|
||||
<li><a href="{{ site.github.zip_url }}">Download <strong>ZIP File</strong></a></li>
|
||||
<li><a href="{{ site.github.tar_url }}">Download <strong>TAR Ball</strong></a></li>
|
||||
<li><a href="{{ site.github.repository_url }}">View On <strong>GitHub</strong></a></li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
<small>Binaries</small><br>
|
||||
<a href="https://github.com/KadeDev/Kade-Engine/releases/latest">Download the <b>Latest release</b></a><br>
|
||||
<a href="https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts">Download a <b>Windows</b> development build</a><br>
|
||||
<a href="https://ci.appveyor.com/project/KadeDev/kade-engine-linux/build/artifacts">Download a <b>Linux</b> development build</a><br>
|
||||
<a href="https://funkin.puyo.xyz/nightly/">Play in your <b>Web Browser</b></a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</header>
|
||||
<section id="content">
|
||||
{% include header.html %}
|
||||
{% if page.url == "/" %}
|
||||
<!-- yay i'm NOT stupid -->
|
||||
{% else %}
|
||||
{{ content }}
|
||||
{% endif %}
|
||||
|
||||
</section>
|
||||
<footer>
|
||||
{% if site.github.is_project_page %}
|
||||
<p>This project is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
|
||||
{% endif %}
|
||||
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="{{ "/assets/js/scale.fix.js" | relative_url }}"></script>
|
||||
{% if page.url == "/" %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
||||
<script>
|
||||
function httpGet(theUrl)
|
||||
{
|
||||
var xmlHttp = new XMLHttpRequest();
|
||||
xmlHttp.open( "GET", theUrl, false ); // false for synchronous request
|
||||
xmlHttp.send( null );
|
||||
return xmlHttp.responseText;
|
||||
}
|
||||
document.getElementById('content').innerHTML = document.getElementById('content').innerHTML + marked(httpGet("{{ site.replace_index_with }}"));
|
||||
</script>
|
||||
{% endif %}
|
||||
{% if site.google_analytics %}
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', '{{ site.google_analytics }}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
{% endif %}
|
||||
</body>
|
||||
</html>
|
68
docs/building.md
Normal file
68
docs/building.md
Normal file
@ -0,0 +1,68 @@
|
||||
# Building Friday Night Funkin': Kade Engine
|
||||
|
||||
**Please note** that these instructions are for compiling/building the game. If you just want to play Kade Engine, **play in your browser or download a build instead**: **[play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/daniel11420/kade-engine-linux/build/artifacts)**. If you want to build the game yourself, continue reading.
|
||||
|
||||
**Also note**: you should be familiar with the commandline. If not, read this [quick guide by ninjamuffin](https://ninjamuffin99.newgrounds.com/news/post/1090480).
|
||||
|
||||
**Also also note**: To build for *Windows*, you need to be on *Windows*. To build for *Linux*, you need to be on *Linux*. Same goes for macOS. You can build for html5/browsers on any platform.
|
||||
|
||||
## Dependencies
|
||||
1. [Install Haxe 4.1.5](https://haxe.org/download/version/4.1.5/). You should use 4.1.5 instead of the latest version because the latest version has some problems with Friday Night Funkin': Kade Engine.
|
||||
2. After installing Haxe, [Install HaxeFlixel](https://haxeflixel.com/documentation/install-haxeflixel/).
|
||||
3. Install `git`.
|
||||
- Windows: install from the [git-scm](https://git-scm.com/downloads) website.
|
||||
- Linux: install the `git` package: `sudo apt install git` (ubuntu), `sudo pacman -S git` (arch), etc... (you probably already have it)
|
||||
4. Install and set up the necessary libraries:
|
||||
- `haxelib install lime 7.9.0`
|
||||
- `haxelib install openfl`
|
||||
- `haxelib install flixel`
|
||||
- `haxelib run lime setup`
|
||||
- `haxelib run lime setup flixel`
|
||||
- `haxelib install flixel-tools`
|
||||
- `haxelib run flixel-tools setup`
|
||||
- `haxelib install flixel-addons`
|
||||
- `haxelib install flixel-ui`
|
||||
- `haxelib install hscript`
|
||||
- `haxelib install newgrounds`
|
||||
- `haxelib install linc_luajit`
|
||||
- `haxelib git faxe https://github.com/uhrobots/faxe`
|
||||
- `haxelib git polymod https://github.com/larsiusprime/polymod.git`
|
||||
- `haxelib git discord_rpc https://github.com/Aidan63/linc_discord-rpc`
|
||||
|
||||
### Windows-only dependencies (only for building *to* Windows. Building html5 on Windows does not require this)
|
||||
If you are planning to build for Windows, you also need to install **Visual Studio 2019**. While installing it, *don't click on any of the options to install workloads*. Instead, go to the **individual components** tab and choose the following:
|
||||
- MSVC v142 - VS 2019 C++ x64/x86 build tools
|
||||
- Windows SDK (10.0.17763.0)
|
||||
- C++ Profiling tools
|
||||
- C++ CMake tools for windows
|
||||
- C++ ATL for v142 build tools (x86 & x64)
|
||||
- C++ MFC for v142 build tools (x86 & x64)
|
||||
- C++/CLI support for v142 build tools (14.21)
|
||||
- C++ Modules for v142 build tools (x64/x86)
|
||||
- Clang Compiler for Windows
|
||||
- Windows 10 SDK (10.0.17134.0)
|
||||
- Windows 10 SDK (10.0.16299.0)
|
||||
- MSVC v141 - VS 2017 C++ x64/x86 build tools
|
||||
- MSVC v140 - VS 2015 C++ build tools (v14.00)
|
||||
|
||||
This will install about 22 GB of crap, but is necessary to build for Windows.
|
||||
|
||||
### macOS-only dependencies (these are required for building on macOS at all, including html5.)
|
||||
If you are running macOS, you'll need to install Xcode. You can download it from the macOS App Store or from the [Xcode website](https://developer.apple.com/xcode/).
|
||||
|
||||
If you get an error telling you that you need a newer macOS version, you need to download an older version of Xcode from the [More Software Downloads](https://developer.apple.com/download/more/) section of the Apple Developer website. (You can check which version of Xcode you need for your macOS version on [Wikipedia's comparison table (in the `min macOS to run` column)](https://en.wikipedia.org/wiki/Xcode#Version_comparison_table).)
|
||||
|
||||
## Cloning the repository
|
||||
Since you already installed `git` in a previous step, we'll use it to clone the repository.
|
||||
1. `cd` to where you want to store the source code (i.e. `C:\Users\username\Desktop` or `~/Desktop`)
|
||||
2. `git clone https://github.com/KadeDev/Kade-Engine.git`
|
||||
3. `cd` into the source code: `cd Kade-Engine`
|
||||
4. (optional) If you want to build a specific version of Kade Engine, you can use `git checkout` to switch to it (i.e. `git checkout 1.4-KE`) (remember that versions 1.4 and older cannot build to Linux or HTML5)
|
||||
- You should **not** do this if you are planning to contribute, as you should always be developing on the latest version.
|
||||
|
||||
## Building
|
||||
Finally, we are ready to build.
|
||||
|
||||
- Run `lime build <target>`, replacing `<target>` with the platform you want to build to (`windows`, `linux`, `html5`) (i.e. `lime build windows`)
|
||||
- The build will be in `Kade-Engine/export/<target>/bin`, with `<target>` being the target you built to in the previous step. (i.e. `Kade-Engine/export/windows/bin`)
|
||||
- Only the `bin` folder is necessary to run the game. The other ones in `export/<target>` are not.
|
155
docs/changelogs/changelog-pre.md
Normal file
155
docs/changelogs/changelog-pre.md
Normal file
@ -0,0 +1,155 @@
|
||||
# Changelog for 1.4.2 and before
|
||||
Changelogs from before the current changelog system existed.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.4.2]
|
||||
### Changed
|
||||
- Trails on notes are more consistent
|
||||
- Title now shows "Friday Night Funkin' Kade Engine"
|
||||
- **THIS UPDATE WILL RESET YOUR SAVE FOR KADE ENGINE**, so you gotta redo all of ur settings.
|
||||
|
||||
### Added
|
||||
- Lua Modchart support [(documentation located here)](https://github.com/KadeDev/Kade-Engine/blob/master/ModCharts.md)
|
||||
- New option called watermarks which removes all watermarks from Kade Engine
|
||||
- Chart spesfic offsets
|
||||
|
||||
## [1.4.1]
|
||||
### Fixed
|
||||
- Rating's and Accuracy calculation (they actually work now)
|
||||
- Deleting notes
|
||||
### Added
|
||||
- Accuracy mod toggle (complex = ms based, accurate = normal rating based. ex sick = 1, good = 0.75, bad = 0.50, shit = 0.25)
|
||||
- Judgement Selector (safe frames)
|
||||
|
||||
## [1.4.1 Nightly2]
|
||||
### Fixed
|
||||
- Scroll Speed messing up hold note parts
|
||||
- Added caps for Safe Frames (so you couldn't break the game)
|
||||
### Changed
|
||||
- Changed the fundamentals of how Ratings and other timing-related things like MS Acc are calculated.
|
||||
- and of course. hit window update
|
||||
|
||||
## [1.4.1 Nightly1]
|
||||
### Fixed
|
||||
- Notes can be deleted
|
||||
- Hit window updates
|
||||
### Changed
|
||||
- FPS Cap can now go faster or slower depending on whether you are holding shift or not.
|
||||
### Added
|
||||
- Safe Frames (the ability to change your hit windows)
|
||||
|
||||
## [1.4]
|
||||
### Edited
|
||||
- offsets work. fucking contributors
|
||||
### Changed
|
||||
- Updated Judgements to contrast better with each other.
|
||||
- Changed Auto Offset to use the tutorial chart instead of a custom one
|
||||
- The file in data called "freeplaySonglist.txt" is now fully used.
|
||||
- Song Position now works a lot better
|
||||
|
||||
## [1.3.1 Nightly3]
|
||||
### Added
|
||||
- Auto Offset (Kinda works
|
||||
- CTRL-Z Support for the charter
|
||||
- NPS Display
|
||||
### Fixed
|
||||
- You can delete notes
|
||||
- FPS No longer resets on changing screens
|
||||
- Some of the Rankings didn't work how they were supposed to, now they work.
|
||||
|
||||
## [1.3.1 Nightly2]
|
||||
### Added
|
||||
- Option Categories
|
||||
- FPS Cap Option
|
||||
- FPS Rainbow Toggle
|
||||
- Scroll Speed Option
|
||||
### Changed
|
||||
- Offset now allows you to hold down to change values
|
||||
- Rating hit windows update
|
||||
### Fixed
|
||||
- Tails being FUCKED
|
||||
|
||||
## [1.3.1 Nightly]
|
||||
### Added
|
||||
- Gameplay Customization
|
||||
- The ability to change rating text's position
|
||||
### Fixed
|
||||
- You can now get a shit
|
||||
- Downscroll arrows are 100% fixed.
|
||||
### Redone
|
||||
- The rating system has been completely rewritten.
|
||||
|
||||
## [1.3.1]
|
||||
### Added
|
||||
- Timing text in ms
|
||||
### Changed
|
||||
- Most UI elements now work based off the camera instead of real-world space (I.E combo, watermark, song bar, etc)
|
||||
- New Accuracy calculation (based off of Wife3 from Etterna a Stepmania Mod)
|
||||
### Fixed
|
||||
- Deleting notes
|
||||
- Misses due to the other player not hitting notes and thus it makes you miss because there wasn't a check. Now there is.
|
||||
- Downscroll tail ends being upside down.
|
||||
|
||||
## [1.3]
|
||||
### Added
|
||||
- Wife3 Accuracy System
|
||||
- Wife3 Ranking (Letter Grades/FC Conditions)
|
||||
- A Reset chart button on the song tab in the debug menu.
|
||||
- Pressing ALT when the note tab is open in the debug menu will allow you to write notes (by playing them, aka pressing DFJK/WASD/Arrow Keys) Press ALT again to toggle off.
|
||||
- Etterna Mode (by default this is off) Etterna Mode basicily puts all of the hit timings to Judgement 4. Which is harsher then the base game.
|
||||
### Tweaked
|
||||
- In the section tab (where it normally says 16) this now works. This is the sections length in steps. It allows you to chart 1/16,1/24,1/32 notes. etc etc.
|
||||
- The BPM stepper now allows you to go into decimals (ALLOWS FOR DECIMAL BPMS!!!!)
|
||||
### Fixed
|
||||
- Song Progress bar no longer clips into the strumline on upscroll on non-pixel charts.
|
||||
- Deleting notes now works
|
||||
- Kade Engine Watermark not showing on all charts.
|
||||
|
||||
## [1.2.2]
|
||||
### Added
|
||||
- A optional bar at the top (or bottom if you have downscroll) that shows the current progress of the song. By default this is turned off.
|
||||
- Discord Rich Presence (including accuracy, misses, and score)
|
||||
### Tweaked
|
||||
- How saving is handled and general code cleanup.
|
||||
|
||||
## [1.2.1]
|
||||
### Fixed
|
||||
- Accuracy toggle now works
|
||||
### Tweaks
|
||||
- HP Drain Tweaks
|
||||
### Added
|
||||
- Anti-Mash
|
||||
|
||||
## [1.2]
|
||||
### Minor fixes
|
||||
- Combo can now go above 999
|
||||
- Accuracy display is now togglable
|
||||
### Fixed
|
||||
- Controls now save and reload upon startup instead of just not loading.
|
||||
- Random misses no longer happen.
|
||||
- REMOVED THE RESET KEYBIND (POG)
|
||||
|
||||
## [1.1.3]
|
||||
quick patch
|
||||
### Fixed
|
||||
- random misses when not missing
|
||||
- monster's icon in freeplay
|
||||
|
||||
## [1.1.2]
|
||||
ok i lied another release
|
||||
### Fixed
|
||||
- Misses not being counted
|
||||
- Replays just not at all attempting to work
|
||||
- Camera Zoom being WAYY too fast or slow
|
||||
- Healthbar in Downscroll not moving
|
||||
|
||||
## [1.1.1]
|
||||
Ok this should be the last 1.1.x release for awhile lol. My bad.
|
||||
|
||||
## [1.1]
|
||||
I'm really dumb lol
|
||||
|
||||
## [1.0]
|
||||
Initial release poggers!
|
20
docs/changelogs/changelog-template.md
Normal file
20
docs/changelogs/changelog-template.md
Normal file
@ -0,0 +1,20 @@
|
||||
# Latest changelog/Changelog for 1.0.0
|
||||
|
||||
### Additions
|
||||
- New thing without issue
|
||||
- [#1](https://github.com/KadeDev/Kade-Engine/issues/1): New thing with issue
|
||||
- [#1](https://github.com/KadeDev/Kade-Engine/issues/1) ([PR #1](https://github.com/KadeDev/Kade-Engine/pulls/1)): New thing with issue and pull request
|
||||
|
||||
### Changes
|
||||
- Use same templates as additions
|
||||
- Changes also includes stuff getting removed (as that happens less often so include it with changes)
|
||||
|
||||
### Bugfixes
|
||||
- Use same templates as additions
|
||||
- This is for when bugs get fixed. This should, like, always have an issue link, always
|
||||
|
||||
## Links
|
||||
[GitHub Release](https://github.com/KadeDev/Kade-Engine/releases/tag/1.4.2) · [Last Windows CI build]() · [Last macOS CI build]() · [Last Linux CI build]()
|
||||
|
||||
// Only include links section after it is no longer "latest changelog"
|
||||
// "Last x CI build" links should link to a specific build, the last one for the version
|
4
docs/changelogs/index.md
Normal file
4
docs/changelogs/index.md
Normal file
@ -0,0 +1,4 @@
|
||||
# Changelogs
|
||||
|
||||
- [Latest](latest) (Contains changes that are not in a release yet)
|
||||
- [1.4.2 and before](changelog-pre)
|
35
docs/changelogs/latest.md
Normal file
35
docs/changelogs/latest.md
Normal file
@ -0,0 +1,35 @@
|
||||
# Latest changelog
|
||||
|
||||
### Additions
|
||||
- [PR #307](https://github.com/KadeDev/Kade-Engine/pulls/307): Fix freeplay lag, add freeplay background changes, and add icons updating in charting state
|
||||
- Updated to Week 7 input with anti mash
|
||||
- Added toggle for ghost tapping
|
||||
- [PR #328](https://github.com/KadeDev/Kade-Engine/pulls/328) and [PR #331](https://github.com/KadeDev/Kade-Engine/pulls/331): Distractions toggle
|
||||
- [PR #341](https://github.com/KadeDev/Kade-Engine/pull/341): Update heads in realtime in charting state
|
||||
- [PR #362](https://github.com/KadeDev/Kade-Engine/pull/362): Officially support macOS (and add macOS requirements to docs)
|
||||
- Set up macOS CI builds
|
||||
- [PR #373](https://github.com/KadeDev/Kade-Engine/pull/373): Add tweens to modcharts
|
||||
- [PR #367](https://github.com/KadeDev/Kade-Engine/pull/367): Add labels to charting state
|
||||
- [PR #374](https://github.com/KadeDev/Kade-Engine/pull/374): Add more icon sizes
|
||||
- [PR #385](https://github.com/KadeDev/Kade-Engine/pull/385): Autoplay
|
||||
- [#353](https://github.com/KadeDev/Kade-Engine/issues/353) ([PR #400](https://github.com/KadeDev/Kade-Engine/pulls/400)): Clap assist for syncing charts
|
||||
- [PR #413](https://github.com/KadeDev/Kade-Engine/pulls/413): Option to disable flashing lights in menus
|
||||
- [PR #428](https://github.com/KadeDev/Kade-Engine/pulls/428): Move documentation to GitHub Pages + new changelog system
|
||||
- [PR #431](https://github.com/KadeDev/Kade-Engine/pull/431): Add Max NPS counter
|
||||
|
||||
### Changes
|
||||
- Tutorial is now a modchart instead of being hardcoded
|
||||
- [PR #332](https://github.com/KadeDev/Kade-Engine/pull/332): Move the beatbox in Fresh to the vocal track
|
||||
- [PR #334](https://github.com/KadeDev/Kade-Engine/pull/334) Unhardcode GF Version, stages, and noteskins and make them loaded from chart
|
||||
- [PR #291](https://github.com/KadeDev/Kade-Engine/pull/291): Make it so you can compile with 4.0.x
|
||||
|
||||
### Bugfixes
|
||||
- [PR #289](https://github.com/KadeDev/Kade-Engine/pulls/289): Player 2 now plays idle animation properly when camera zooms in
|
||||
- [PR #314](https://github.com/KadeDev/Kade-Engine/pulls/314): Fix note trails
|
||||
- [PR #330](https://github.com/KadeDev/Kade-Engine/pull/330): Fix spelling errors in options
|
||||
- [#329](https://github.com/KadeDev/Kade-Engine/issues/329) ([PR #341](https://github.com/KadeDev/Kade-Engine/pull/341)): Fix crash when changing characters in charting state on web
|
||||
- [PR #341](https://github.com/KadeDev/Kade-Engine/pull/341): Fix html5 crash (when building), fix layering issues in charting state, fix charting state crashes in html5
|
||||
- [PR #376](https://github.com/KadeDev/Kade-Engine/pull/376): Fix must hit sections
|
||||
- [#368](https://github.com/KadeDev/Kade-Engine/issues/368) ([PR #392](https://github.com/KadeDev/Kade-Engine/pull/392)): Fix enemy idle animations not playing before first note
|
||||
- [PR #399](https://github.com/KadeDev/Kade-Engine/pulls/399): Fix downscroll typo
|
||||
- [PR #431](https://github.com/KadeDev/Kade-Engine/pull/431): Fix NPS counter
|
3
docs/guides/index.md
Normal file
3
docs/guides/index.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Guides
|
||||
|
||||
There aren't any guides yet. But when there are, they'll be listed here.
|
Binary file not shown.
Before Width: | Height: | Size: 232 KiB |
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<!--
|
||||
@brandybuizel
|
||||
@ninja_muffin2.4
|
||||
-->
|
||||
|
||||
<!--Let's get meta bois-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Friday Night Funkin'</title>
|
||||
<meta name="description" content="A dope ass rhythm game">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="styles.css" rel="stylesheet" type="text/css">
|
||||
<!-- <link href="website/mm.ico" rel="icon" type="image/x-icon"> -->
|
||||
<link rel="shortcut icon" type="image/png" href="../art/icon.png" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!--Header-->
|
||||
<header>
|
||||
</header>
|
||||
|
||||
|
||||
<marquee width="1920" scrollamount="2" scrolldelay="10" truespeed="truespeed">Friday Night Funkin</marquee>
|
||||
<!--Hot tortilla wrap-->
|
||||
<div id="wrapper">
|
||||
<h1>Friday Night Funkin' - Rhythm game extraordinaire</h1>
|
||||
|
||||
|
||||
<div id="coolervidwrapper">
|
||||
<div class='videoWrapper'>
|
||||
<iframe width="560" height="349" src="https://www.youtube.com/embed/HMNKUo3CCpU" frameborder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="coolBox hovertext" id="twitter">
|
||||
<p class="description">Friday Night Funkin' is a dope ass rhythm game.</p>
|
||||
<p class='description'>It is made by <a href="https://twitter.com/ninja_muffin99">ninjamuffin99 (programmer)</a>, <a
|
||||
href="https://twitter.com/PhantomArcade3K">PhantomArcade (animator)</a>, <a
|
||||
href="https://twitter.com/evilsk8r">evilsk8r (artist)</a>,
|
||||
and <a href="https://twitter.com/kawaisprite">Kawaisprite (musician)</a> originally for Ludum Dare 47.</p>
|
||||
</div>
|
||||
|
||||
<div class="linktext hovertext" id="ng">
|
||||
<a href="https://www.newgrounds.com/portal/view/770371">Play demo on Newgrounds</a>
|
||||
</div>
|
||||
|
||||
<div class='linktext hovertext' id="itch">
|
||||
<a href="https://ninja-muffin24.itch.io/funkin">Support the game on Itch.io</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
3
docs/index.md
Normal file
3
docs/index.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Readme
|
||||
|
||||
Index is automatically replaced with README by the layout. So, this file does nothing.
|
420
docs/modchart.md
Normal file
420
docs/modchart.md
Normal file
@ -0,0 +1,420 @@
|
||||
# Lua Modcharts
|
||||
|
||||
In the 1.4.2 release of Kade Engine, we introduced Mod Charts. Mod Charts are a way of changing gameplay without hard coded values. This is achieved by using the Lua Scripting language to create script files that run during runtime.
|
||||
|
||||
Song data is located in `assets/data/<song>/`, so the Lua file containing your scripts should be located at exactly `assets/data/<song>/modchart.lua`. (replace <song> with the name of the song. for example, `assets/data/milf/` for milf)
|
||||
|
||||
If the file doesn't exist, Lua code won't be ran.
|
||||
|
||||
## Examples
|
||||
|
||||
Full Example
|
||||
|
||||
```lua
|
||||
function start (song)
|
||||
print("Song: " .. song .. " @ " .. bpm .. " downscroll: " .. downscroll)
|
||||
end
|
||||
|
||||
|
||||
function update (elapsed) -- example https://twitter.com/KadeDeveloper/status/1382178179184422918
|
||||
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||
end
|
||||
end
|
||||
|
||||
function beatHit (beat)
|
||||
-- do nothing
|
||||
end
|
||||
|
||||
function stepHit (step)
|
||||
-- do nothing
|
||||
end
|
||||
|
||||
print("Mod Chart script loaded :)")
|
||||
```
|
||||
|
||||
Spinning Receptor Example
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
for i=0,7 do
|
||||
setActorAngle(getActorAngle(i) + 15, i)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Spinning Hud Example
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
camHudAngle = camHudAngle + 0.005
|
||||
end
|
||||
```
|
||||
|
||||
Spin at a specific part of the song
|
||||
|
||||
```lua
|
||||
function update (elapsed)
|
||||
if curStep >= 352 and curStep < 400 then
|
||||
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||
end
|
||||
else
|
||||
for i=0,7 do
|
||||
setActorX(_G['defaultStrum'..i..'X'],i)
|
||||
setActorY(_G['defaultStrum'..i..'Y'],i)
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Showing/Hiding receptors/the hud
|
||||
|
||||
```lua
|
||||
function start (song)
|
||||
showOnlyStrums = true -- remove all hud elements besides notes and strums
|
||||
for i=0,3 do -- fade out the first 4 receptors (the ai receptors)
|
||||
tweenFadeIn(i,0,0.6)
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
Looping through all of the rendered notes
|
||||
|
||||
```lua
|
||||
for i = 0, getRenderedNotes() do -- sets all of the rendered notes to 0 0 on the x and y axsis
|
||||
setRenderedNotePos(0,0,i)
|
||||
end
|
||||
```
|
||||
|
||||
Centering BF's Side
|
||||
|
||||
```lua
|
||||
function setDefault(id)
|
||||
_G['defaultStrum'..id..'X'] = getActorX(id)
|
||||
end
|
||||
|
||||
-- put this somewhere in a function
|
||||
|
||||
for i = 4, 7 do -- go to the center
|
||||
tweenPosXAngle(i, _G['defaultStrum'..i..'X'] - 275,getActorAngle(i) + 360, 0.6, 'setDefault')
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
### Available Hooks
|
||||
|
||||
Current calls to functions include,
|
||||
|
||||
| Name | Arguments | Description |
|
||||
| :-----: | :------------: | :----------------------------------------------------------: |
|
||||
| start | Song Name | Gets called when the song starts |
|
||||
| update | Elapsed frames | Gets called every frame (after the song starts) |
|
||||
| stepHit | Current Step | Gets called when ever a step hits (steps are in between beats, aka 4 steps are in a beat) |
|
||||
| beatHit | Current Beat | Gets called when ever a beat hits |
|
||||
|
||||
|
||||
|
||||
### Global Variables
|
||||
|
||||
Kade Engine provides a list of global variables to be used in the lua scripting interface.
|
||||
|
||||
| G Name | Type | Description |
|
||||
| :------------------: | :---: | :----------------------------------------------------------: |
|
||||
| bpm | Float | The current BPM of the song |
|
||||
| fpsCap | Int | The current FPS Cap (set by the player) |
|
||||
| downscroll | Bool | Whether the player is in downscroll or not |
|
||||
| cameraAngle | Float | The angle that the Main Camera should be rotated |
|
||||
| camHudAngle | Float | The angle that the Hud should be rotated |
|
||||
| followXOffset | Float | The x offset to be added when the camera moves between a character |
|
||||
| followYOffset | Float | The y offset to be added when the camera moves between a character |
|
||||
| showOnlyStrums | Bool | Whether to show the Hud and Strums or only the Strums |
|
||||
| strumLine1Visible | Bool | Whether to show the first strum line or not |
|
||||
| strumLine2Visible | Bool | Whether to show the secondstrum line or not |
|
||||
| defaultStrum0-7X | Float | (0-7 is strum0,strum1,strum2,etc) get the default X coordinate for the strum |
|
||||
| defaultStrum0-7Y | Float | (0-7 is strum0,strum1,strum2,etc) get the default Y coordinate for the strum |
|
||||
| defaultStrum0-7Angle | Float | (0-7 is strum0,strum1,strum2,etc) get the default Angle for the strum |
|
||||
| screenWidth | Int | The width of the current gamespace |
|
||||
| screenHeight | Int | The height of the current gamespace |
|
||||
| hudWidth | Int | The width of the hud |
|
||||
| hudHeight | Int | The height of the hud |
|
||||
| scrollSpeed | Int | The current scrollspeed |
|
||||
| mustHit | Bool | If the current section is a must hit section |
|
||||
| strumLineY | Float | The current Strum Line Y Position |
|
||||
|
||||
## Functions
|
||||
|
||||
Kade Engine exposes a lot of functions that let you modify elements in the game field.
|
||||
|
||||
|
||||
|
||||
To get started every sprite has an id, and there are some id's that are accessible without creating one.
|
||||
|
||||
These premade id's are the following:
|
||||
|
||||
| Sprite Id | Value |
|
||||
| :--------: | :--------------------------------------: |
|
||||
| 0-7 | Represents Receptor 0-7 |
|
||||
| boyfriend | Represents the Boyfriend Actor (player1) |
|
||||
| dad | Represents the Dad Actor (player2) |
|
||||
| girlfriend | Represents the Girlfriend Actor |
|
||||
|
||||
|
||||
|
||||
### Sprites
|
||||
|
||||
##### makeSprite(string SpritePath,string SpriteId,bool DrawBehind)
|
||||
|
||||
Creates a sprite out of the specified image, returns the id you gave it.
|
||||
|
||||
*Note: Sprite Path is normally the FILE NAME so if your file is named `Image` it'll go to assets/data/songName/Image.png so don't include the extension*
|
||||
|
||||
### Hud/Camera
|
||||
|
||||
##### setHudPosition(int x, int y)
|
||||
|
||||
Sets the game hud's position in space.
|
||||
|
||||
##### getHudX()
|
||||
|
||||
Returns the hud's x position
|
||||
|
||||
##### getHudY()
|
||||
|
||||
Returns the hud's y position
|
||||
|
||||
##### setCamPosition(int x, int y)
|
||||
|
||||
Set's the current camera's position in space
|
||||
|
||||
##### getCamX()
|
||||
|
||||
Returns the current camera's x position
|
||||
|
||||
##### getCamY()
|
||||
|
||||
Returns the current camera's y position
|
||||
|
||||
##### setCamZoom(int zoomAmount)
|
||||
|
||||
Set's the current camera's zoom
|
||||
|
||||
##### setHudZoom(int zoomAmount)
|
||||
|
||||
Set's the hud's zoom
|
||||
|
||||
### Actors
|
||||
|
||||
##### getRenderedNotes()
|
||||
|
||||
Returns the amount of rendered notes.
|
||||
|
||||
##### getRenderedNoteX(int id)
|
||||
|
||||
Returns the x position of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteY(int id)
|
||||
|
||||
Returns the y position of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteScaleX(int id)
|
||||
|
||||
Returns the scale x of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteScaleY(int id)
|
||||
|
||||
Returns the scale y of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteType(int id)
|
||||
|
||||
Returns the note data of an note (0-3, left, down, up, right)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### isSustain(int id)
|
||||
|
||||
Returns whether a rendered note is a sustain note or not (if they appear as the trail)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### isParentSustain(int id)
|
||||
|
||||
Returns whether a rendered note's parrent is a sustain note or not (if they appear as the trail)
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteParentX(int id)
|
||||
|
||||
Returns the current parent x of the specified rendered note's id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteParentY(int id)
|
||||
|
||||
Returns the current parent y of the specified rendered note's id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteCalcX(int id)
|
||||
|
||||
Returns what the game would normally put the specified rendered note x.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### anyNotes()
|
||||
|
||||
Returns the number of rendered notes on the screen.
|
||||
|
||||
##### getRenderedNoteStrumtime(int id)
|
||||
|
||||
Returns strum time of the rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteAlpha(int id)
|
||||
|
||||
Returns the alpha of the rendered note id
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteWidth(int id)
|
||||
|
||||
Returns the width of the specified rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### getRenderedNoteAngle(int id)
|
||||
|
||||
Returns the angle of the specified rendered note.
|
||||
|
||||
*Note: Rendered Notes id's are special in the way that they act. 0 = closest note to any receptor, last index = the farthest away from any receptor.*
|
||||
|
||||
##### setRenderedNotePos(int x, int y, int id)
|
||||
|
||||
Set's the position of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteAlpha(float alpha, int id)
|
||||
|
||||
Set's the alpha of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScale(float scale, int id)
|
||||
|
||||
Set's the scale of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScaleX(float scale, int id) **Currently broken**
|
||||
|
||||
Set's the scale x of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### setRenderedNoteScaleY(float scale, int id) **Currently broken**
|
||||
|
||||
Set's the scale y of the rendered note id
|
||||
|
||||
*Note: Setting a Rendered Note's property will stop the note from updating it's alpha & x properties*
|
||||
|
||||
##### getActorX(string/int id)
|
||||
|
||||
Returns the x position for the sprite id
|
||||
|
||||
##### getActorY(string/int id)
|
||||
|
||||
Returns the y position for the sprite id
|
||||
|
||||
##### getActorScaleX(string/int id)
|
||||
|
||||
Returns the scale x for the sprite id
|
||||
|
||||
##### getActorScaleY(string/int id)
|
||||
|
||||
Returns the scale y for the sprite id
|
||||
|
||||
##### getActorAlpha(string/int id)
|
||||
|
||||
Returns the alpha for the sprite id
|
||||
|
||||
##### getActorAngle(string/int id)
|
||||
|
||||
Returns the angle for the sprite id
|
||||
|
||||
##### setActorX(int x, string/int id)
|
||||
|
||||
Set's the x position for the sprite id
|
||||
|
||||
##### setActorY(int y, string/int id)
|
||||
|
||||
Set's the y position for the sprite id
|
||||
|
||||
##### setActorAlpha(float alpha, string/int id)
|
||||
|
||||
Set's the alpha for the sprite id
|
||||
|
||||
##### setActorAngle(int alpha, string/int id)
|
||||
|
||||
Set's the angle for the sprite id
|
||||
|
||||
##### setActorScale(float scale, string/int id)
|
||||
|
||||
Set's the scale for the sprite id
|
||||
|
||||
##### setActorScaleX(float x, string/int id) **Currently broken**
|
||||
|
||||
Set's the scale x for the sprite id
|
||||
|
||||
##### setActorScaleY(float y, string/int id) **Currently broken**
|
||||
|
||||
Set's the scale y for the sprite id
|
||||
|
||||
##### getActorWidth(string/int id)
|
||||
|
||||
Returns the width for the sprite id
|
||||
|
||||
##### getActorHeight(string/int id)
|
||||
|
||||
Returns the height for the sprite id
|
||||
|
||||
### Tweens
|
||||
|
||||
*Note, On Complete functions are based by the function name (and they also well get called when the tween completes)*
|
||||
|
||||
##### tweenPos(string/int id, int toX, int toY, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a x and y position
|
||||
|
||||
##### tweenPosXAngle(string/int id, int toX, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a x position and angle
|
||||
|
||||
##### tweenPosYAngle(string/int id, int toY, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a y position and angle
|
||||
|
||||
##### tweenAngle(string/int id, float toAngle, float time, string onComplete)
|
||||
|
||||
Smoothly tween into a angle
|
||||
|
||||
##### tweenFadeIn(string/int id, float toAlpha, float time, string onComplete)
|
||||
|
||||
Smoothly fade in to an alpha
|
||||
|
||||
##### tweenFadeOut(string/int id, float toAlpha, float time, string onComplete)
|
||||
|
||||
Smoothly fade out to an alpha
|
@ -1,97 +0,0 @@
|
||||
.coolBox {
|
||||
background: #1a1a1aCC;
|
||||
margin: 40px 4vw;
|
||||
padding: 25px;
|
||||
font-size: 120%;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#wrapper
|
||||
{
|
||||
padding: 20px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
marquee {
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body {
|
||||
background-image: url('img/skin-funkin-cardbordtoast.jpg');
|
||||
background-repeat: no-repeat;
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
color:white;
|
||||
background-color: #000;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
|
||||
}
|
||||
|
||||
a { color:inherit;
|
||||
text-decoration: none;}
|
||||
|
||||
|
||||
.hovertext a{
|
||||
color:white;
|
||||
text-shadow: 0px 0px #00000077;
|
||||
transition: color 1s, text-shadow 1s;
|
||||
}
|
||||
|
||||
.hovertext a:hover
|
||||
{
|
||||
text-shadow: 2px 2px #00000077;
|
||||
color: #ffb50e;
|
||||
}
|
||||
|
||||
.linktext {
|
||||
text-align: center;
|
||||
display:block;
|
||||
font-size: 130%;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.linktext a {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.linktext a:hover {
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#itch a:hover
|
||||
{
|
||||
color: #fa5c5c;
|
||||
}
|
||||
#twitter a:hover
|
||||
{
|
||||
color: #00acee;
|
||||
}
|
||||
|
||||
|
||||
#coolervidwrapper {
|
||||
padding-left: min(12em, 75%);
|
||||
padding-right: min(12em, 75%);
|
||||
min-width: 30%;
|
||||
}
|
||||
|
||||
.videoWrapper {
|
||||
position: relative;
|
||||
padding-bottom: 56.25%; /* 16:9 */
|
||||
height: 0;
|
||||
|
||||
max-block-size: 1400px;
|
||||
}
|
||||
.videoWrapper iframe {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
}
|
Reference in New Issue
Block a user