diff --git a/.gitignore b/.gitignore index ed72419d..83a2ed47 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ resources/win64/love/* # Tools tools/funkin-json/* tools/funkin-xml/* +tools/funkin-xna/* !tools/funkin-json/funkin-json.py !tools/funkin-xml/funkin-xml.py +!tools/funkin-xna/funkin-xna.py diff --git a/README.md b/README.md index 8dec8bd7..7d45d015 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # ![Logo](images/logo.png) -![GitHub release (latest by date)](https://img.shields.io/github/v/release/HTV04/funkin-rewritten?style=flat-square) ![GitHub all releases](https://img.shields.io/github/downloads/HTV04/funkin-rewritten/total?style=flat-square) ![GitHub issues](https://img.shields.io/github/issues/HTV04/funkin-rewritten?style=flat-square) ![GitHub](https://img.shields.io/github/license/HTV04/funkin-rewritten?style=flat-square) ![Discord](https://img.shields.io/discord/852658576577003550?style=flat-square) +[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/HTV04/funkin-rewritten?style=flat-square)](https://github.com/HTV04/funkin-rewritten/releases/latest) [![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/HTV04/funkin-rewritten?include_prereleases&style=flat-square)](https://github.com/HTV04/funkin-rewritten/releases) [![GitHub all releases](https://img.shields.io/github/downloads/HTV04/funkin-rewritten/total?style=flat-square)](https://github.com/HTV04/funkin-rewritten/releases) [![GitHub issues](https://img.shields.io/github/issues/HTV04/funkin-rewritten?style=flat-square)](https://github.com/HTV04/funkin-rewritten/issues) [![GitHub](https://img.shields.io/github/license/HTV04/funkin-rewritten?style=flat-square)](https://github.com/HTV04/funkin-rewritten/blob/main/LICENSE) [![Discord](https://img.shields.io/discord/852658576577003550?style=flat-square)](https://discord.gg/tQGzN2Wu48) Friday Night Funkin' Rewritten is a rewrite of [Friday Night Funkin'](https://ninja-muffin24.itch.io/funkin) built on [LÖVE](https://love2d.org/) and [LÖVE Potion](https://github.com/lovebrew/LovePotion) for Windows, macOS, and Linux, as well as previously unsupported platforms, like the Nintendo Switch! diff --git a/src/love/debug-menu.lua b/src/love/debug-menu.lua index ab2e4905..2a8c5ca0 100644 --- a/src/love/debug-menu.lua +++ b/src/love/debug-menu.lua @@ -34,7 +34,7 @@ return { dirTable = love.filesystem.getDirectoryItems(curDir) end, - enter = function(self) + enter = function(self, previous) menuID = 1 selection = 3 @@ -54,8 +54,7 @@ return { {2} } - graphics.cancelTimer() - graphics.fade[1] = 0 + graphics.setFade(0) graphics.fadeIn(0.5) end, @@ -84,7 +83,7 @@ return { overlaySprite = spriteData() spriteAnims = {} - for i, _ in pairs(sprite.anims) do + for i, _ in pairs(sprite.getAnims()) do table.insert(spriteAnims, i) end diff --git a/src/love/fonts/pixel.fnt b/src/love/fonts/pixel.fnt new file mode 100644 index 00000000..be42af53 --- /dev/null +++ b/src/love/fonts/pixel.fnt @@ -0,0 +1,267 @@ +info face="Pixel Arial 11" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=1,1 outline=0 +common lineHeight=12 base=10 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="pixel_0.png" +chars count=263 +char id=32 x=246 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=4 page=0 chnl=15 +char id=33 x=47 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=34 x=89 y=44 width=4 height=3 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=35 x=220 y=10 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=36 x=210 y=0 width=6 height=9 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=37 x=33 y=11 width=10 height=8 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=38 x=124 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=39 x=130 y=44 width=2 height=3 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=40 x=153 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=41 x=158 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=42 x=5 y=47 width=4 height=4 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=43 x=165 y=37 width=6 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=44 x=142 y=44 width=2 height=3 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15 +char id=45 x=203 y=43 width=4 height=1 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=46 x=62 y=48 width=2 height=1 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15 +char id=47 x=15 y=29 width=4 height=8 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=48 x=241 y=10 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=49 x=25 y=29 width=4 height=8 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=50 x=248 y=10 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=51 x=0 y=21 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=52 x=105 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=53 x=98 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=54 x=14 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=55 x=56 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=56 x=49 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=57 x=35 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=58 x=142 y=37 width=2 height=6 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=59 x=44 y=29 width=2 height=8 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=60 x=179 y=37 width=6 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=61 x=43 y=45 width=6 height=3 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15 +char id=62 x=172 y=37 width=6 height=5 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=63 x=84 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=64 x=0 y=0 width=11 height=10 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=15 +char id=65 x=73 y=11 width=8 height=8 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=66 x=156 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=67 x=172 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=68 x=188 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=69 x=21 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=70 x=28 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=71 x=64 y=11 width=8 height=8 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=72 x=196 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=73 x=53 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=74 x=198 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=75 x=108 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=76 x=234 y=10 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=77 x=132 y=11 width=7 height=8 xoffset=1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=78 x=140 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=79 x=91 y=11 width=8 height=8 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=80 x=42 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=81 x=82 y=11 width=8 height=8 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=82 x=164 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=83 x=212 y=10 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=84 x=7 y=21 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=85 x=148 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=86 x=116 y=11 width=7 height=8 xoffset=1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=87 x=10 y=11 width=11 height=8 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=88 x=204 y=10 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=89 x=180 y=11 width=7 height=8 xoffset=1 yoffset=2 xadvance=9 page=0 chnl=15 +char id=90 x=100 y=11 width=7 height=8 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=91 x=177 y=0 width=3 height=10 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=92 x=5 y=30 width=4 height=8 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=93 x=181 y=0 width=3 height=10 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=94 x=248 y=36 width=6 height=4 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=95 x=184 y=43 width=7 height=1 xoffset=0 yoffset=11 xadvance=8 page=0 chnl=15 +char id=96 x=173 y=43 width=3 height=2 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=97 x=58 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=98 x=227 y=10 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=99 x=65 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=100 x=63 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=101 x=72 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=102 x=30 y=29 width=4 height=8 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=103 x=70 y=20 width=6 height=8 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=104 x=77 y=20 width=6 height=8 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=105 x=50 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=106 x=189 y=0 width=3 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=107 x=174 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=108 x=35 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=109 x=36 y=38 width=7 height=6 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=15 +char id=110 x=44 y=38 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=111 x=51 y=38 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=112 x=119 y=20 width=6 height=8 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=113 x=91 y=20 width=6 height=8 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=114 x=137 y=37 width=4 height=6 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=115 x=93 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=116 x=10 y=30 width=4 height=8 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=117 x=100 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=118 x=107 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=119 x=26 y=38 width=9 height=6 xoffset=1 yoffset=4 xadvance=11 page=0 chnl=15 +char id=120 x=79 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=121 x=112 y=20 width=6 height=8 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=122 x=86 y=37 width=6 height=6 xoffset=0 yoffset=4 xadvance=7 page=0 chnl=15 +char id=123 x=163 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=124 x=196 y=0 width=2 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=125 x=168 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=126 x=147 y=43 width=6 height=2 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=15 +char id=160 x=0 y=11 width=5 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=161 x=76 y=29 width=9 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15 +char id=162 x=132 y=37 width=4 height=6 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=163 x=219 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=164 x=252 y=0 width=3 height=9 xoffset=-1 yoffset=1 xadvance=2 page=0 chnl=15 +char id=165 x=145 y=37 width=9 height=5 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=166 x=238 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=167 x=8 y=39 width=3 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=168 x=58 y=49 width=3 height=1 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15 +char id=169 x=86 y=29 width=7 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15 +char id=170 x=50 y=45 width=5 height=3 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=171 x=139 y=44 width=2 height=3 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=172 x=155 y=37 width=9 height=5 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=15 +char id=173 x=183 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=174 x=94 y=29 width=7 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15 +char id=175 x=34 y=49 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=176 x=120 y=44 width=3 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=177 x=177 y=29 width=5 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=178 x=237 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=179 x=114 y=37 width=5 height=6 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=180 x=181 y=43 width=2 height=2 xoffset=1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=181 x=222 y=36 width=4 height=5 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=182 x=147 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=183 x=98 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=184 x=42 y=49 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=185 x=173 y=0 width=3 height=10 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=186 x=192 y=43 width=5 height=1 xoffset=0 yoffset=9 xadvance=6 page=0 chnl=15 +char id=187 x=136 y=44 width=2 height=3 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=188 x=126 y=37 width=5 height=6 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=189 x=204 y=37 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=190 x=210 y=36 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=191 x=180 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=192 x=202 y=0 width=7 height=9 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=15 +char id=193 x=70 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=194 x=26 y=45 width=3 height=1 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=195 x=0 y=47 width=4 height=4 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=196 x=231 y=0 width=6 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=197 x=77 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=198 x=225 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=199 x=238 y=0 width=6 height=9 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15 +char id=200 x=24 y=38 width=1 height=7 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=201 x=49 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=202 x=108 y=44 width=3 height=3 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=15 +char id=203 x=20 y=29 width=4 height=8 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=204 x=147 y=0 width=5 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=205 x=102 y=29 width=7 height=7 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15 +char id=206 x=231 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=207 x=20 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15 +char id=208 x=198 y=37 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=209 x=133 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=210 x=186 y=37 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=211 x=243 y=28 width=4 height=7 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=212 x=248 y=28 width=4 height=7 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=213 x=133 y=44 width=2 height=3 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15 +char id=214 x=224 y=0 width=6 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=215 x=216 y=36 width=5 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=216 x=120 y=37 width=5 height=6 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=217 x=241 y=36 width=3 height=5 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=218 x=245 y=36 width=2 height=5 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15 +char id=219 x=232 y=36 width=4 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=220 x=217 y=0 width=6 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=221 x=12 y=39 width=3 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=222 x=117 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=223 x=192 y=20 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=224 x=150 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=225 x=228 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=226 x=156 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=227 x=144 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=228 x=123 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=229 x=138 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=230 x=105 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=231 x=129 y=29 width=5 height=7 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=232 x=132 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=233 x=126 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=234 x=210 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=235 x=135 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=236 x=38 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=15 +char id=237 x=41 y=29 width=2 height=8 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=15 +char id=238 x=252 y=19 width=3 height=8 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=15 +char id=239 x=16 y=38 width=3 height=7 xoffset=-1 yoffset=3 xadvance=2 page=0 chnl=15 +char id=240 x=56 y=45 width=5 height=3 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15 +char id=241 x=186 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=242 x=168 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=243 x=162 y=20 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=244 x=246 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=245 x=216 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=246 x=141 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=247 x=91 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=248 x=84 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=249 x=240 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=250 x=234 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=251 x=222 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=252 x=153 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=253 x=20 y=38 width=3 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=254 x=159 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=255 x=63 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=262 x=65 y=48 width=1 height=1 xoffset=1 yoffset=6 xadvance=3 page=0 chnl=15 +char id=263 x=116 y=44 width=3 height=3 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15 +char id=268 x=164 y=43 width=4 height=2 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=269 x=112 y=44 width=3 height=3 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15 +char id=273 x=177 y=43 width=3 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15 +char id=286 x=165 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=287 x=171 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=304 x=10 y=47 width=23 height=3 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=15 +char id=305 x=54 y=11 width=9 height=8 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=321 x=234 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=6 page=0 chnl=15 +char id=322 x=222 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=6 page=0 chnl=15 +char id=338 x=127 y=44 width=2 height=3 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15 +char id=339 x=4 y=39 width=3 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=350 x=145 y=43 width=1 height=3 xoffset=0 yoffset=7 xadvance=2 page=0 chnl=15 +char id=351 x=159 y=43 width=4 height=2 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=15 +char id=352 x=50 y=49 width=3 height=1 xoffset=-1 yoffset=11 xadvance=5 page=0 chnl=15 +char id=353 x=46 y=49 width=3 height=1 xoffset=-1 yoffset=11 xadvance=5 page=0 chnl=15 +char id=376 x=193 y=0 width=2 height=10 xoffset=0 yoffset=0 xadvance=2 page=0 chnl=15 +char id=381 x=30 y=45 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=382 x=250 y=41 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=402 x=208 y=43 width=4 height=1 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=710 x=44 y=11 width=9 height=8 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=711 x=204 y=19 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=713 x=54 y=49 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=728 x=110 y=29 width=6 height=7 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15 +char id=729 x=0 y=39 width=3 height=7 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=730 x=218 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=731 x=12 y=0 width=7 height=10 xoffset=0 yoffset=0 xadvance=8 page=0 chnl=15 +char id=732 x=22 y=11 width=10 height=8 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=733 x=226 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=916 x=99 y=44 width=4 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=937 x=230 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=956 x=227 y=36 width=4 height=5 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=960 x=6 y=11 width=3 height=9 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=15 +char id=8208 x=198 y=43 width=4 height=1 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=15 +char id=8211 x=254 y=41 width=1 height=1 xoffset=1 yoffset=6 xadvance=4 page=0 chnl=15 +char id=8212 x=124 y=44 width=2 height=3 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=15 +char id=8216 x=35 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8217 x=28 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8218 x=56 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8220 x=74 y=44 width=4 height=3 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=15 +char id=8221 x=66 y=29 width=9 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15 +char id=8222 x=169 y=43 width=3 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8224 x=237 y=36 width=3 height=5 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=8225 x=42 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8226 x=104 y=44 width=3 height=3 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=8230 x=192 y=37 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=8240 x=154 y=43 width=4 height=2 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8249 x=199 y=0 width=2 height=10 xoffset=0 yoffset=0 xadvance=2 page=0 chnl=15 +char id=8250 x=140 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8260 x=185 y=0 width=3 height=10 xoffset=-1 yoffset=0 xadvance=2 page=0 chnl=15 +char id=8355 x=0 y=30 width=4 height=8 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8482 x=34 y=45 width=8 height=3 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15 +char id=8486 x=242 y=42 width=3 height=1 xoffset=-1 yoffset=11 xadvance=3 page=0 chnl=15 +char id=8706 x=189 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=8710 x=79 y=44 width=4 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8719 x=68 y=44 width=5 height=3 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=15 +char id=8721 x=253 y=28 width=1 height=7 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8722 x=195 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=8729 x=126 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=8730 x=38 y=49 width=3 height=1 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15 +char id=8734 x=201 y=29 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=8747 x=62 y=44 width=5 height=3 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=8776 x=84 y=44 width=4 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8800 x=56 y=29 width=9 height=7 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=15 +char id=8804 x=207 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=8805 x=213 y=28 width=5 height=7 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=8946 x=94 y=44 width=4 height=3 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=9674 x=245 y=0 width=6 height=9 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=61440 x=213 y=42 width=4 height=1 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=15 +char id=61441 x=119 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=61442 x=112 y=0 width=6 height=10 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 diff --git a/src/love/fonts/pixel_0.png b/src/love/fonts/pixel_0.png new file mode 100644 index 00000000..034f26f5 Binary files /dev/null and b/src/love/fonts/pixel_0.png differ diff --git a/src/love/fonts/pixel_small.fnt b/src/love/fonts/pixel_small.fnt new file mode 100644 index 00000000..060d2d2d --- /dev/null +++ b/src/love/fonts/pixel_small.fnt @@ -0,0 +1,267 @@ +info face="Pixel Arial 11" size=10 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=1,1 outline=0 +common lineHeight=11 base=9 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="pixel_small_0.png" +chars count=263 +char id=32 x=115 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=4 page=0 chnl=15 +char id=33 x=193 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=34 x=168 y=33 width=4 height=3 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=35 x=192 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=36 x=185 y=0 width=5 height=8 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=37 x=0 y=10 width=9 height=7 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=38 x=115 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=39 x=194 y=31 width=2 height=3 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=40 x=128 y=0 width=4 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=41 x=133 y=0 width=4 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=42 x=158 y=33 width=4 height=3 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=43 x=52 y=33 width=5 height=4 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=44 x=197 y=31 width=2 height=3 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=15 +char id=45 x=55 y=38 width=4 height=1 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15 +char id=46 x=147 y=37 width=2 height=1 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=15 +char id=47 x=135 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=48 x=228 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=49 x=165 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=50 x=129 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=51 x=240 y=8 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=52 x=96 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=53 x=90 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=54 x=30 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=55 x=24 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=56 x=12 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=57 x=72 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=58 x=25 y=33 width=2 height=5 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=59 x=190 y=17 width=2 height=7 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=60 x=58 y=33 width=5 height=4 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=61 x=211 y=31 width=5 height=2 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=62 x=99 y=33 width=4 height=4 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=63 x=94 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=64 x=0 y=0 width=10 height=9 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=15 +char id=65 x=86 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=66 x=136 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=67 x=143 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=68 x=150 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=69 x=246 y=8 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=70 x=222 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=71 x=62 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=72 x=122 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=73 x=205 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=74 x=120 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=75 x=164 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=76 x=216 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=77 x=46 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=78 x=185 y=9 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=79 x=38 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=80 x=0 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=81 x=54 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=82 x=157 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=83 x=108 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=84 x=18 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=85 x=101 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=86 x=70 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=87 x=10 y=10 width=9 height=7 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=88 x=171 y=10 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=89 x=78 y=10 width=7 height=7 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=15 +char id=90 x=178 y=9 width=6 height=7 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=15 +char id=91 x=152 y=0 width=3 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=92 x=180 y=17 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=93 x=156 y=0 width=3 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=94 x=146 y=33 width=6 height=3 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=95 x=36 y=38 width=6 height=1 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=15 +char id=96 x=21 y=39 width=3 height=2 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=97 x=218 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=98 x=48 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=99 x=224 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=100 x=54 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=101 x=230 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=102 x=175 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=103 x=66 y=18 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=104 x=114 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=15 +char id=105 x=202 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=106 x=164 y=0 width=3 height=9 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=107 x=125 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=108 x=208 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=109 x=179 y=26 width=7 height=5 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=15 +char id=110 x=206 y=25 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=111 x=212 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=112 x=78 y=18 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=113 x=84 y=18 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=114 x=10 y=33 width=4 height=5 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=115 x=242 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=116 x=150 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=117 x=236 y=24 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=118 x=194 y=25 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=119 x=169 y=26 width=9 height=5 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=15 +char id=120 x=187 y=25 width=6 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=121 x=102 y=18 width=5 height=7 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=122 x=200 y=25 width=5 height=5 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=15 +char id=123 x=138 y=0 width=4 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=124 x=171 y=0 width=2 height=9 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=15 +char id=125 x=143 y=0 width=4 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=126 x=43 y=38 width=5 height=1 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=15 +char id=160 x=221 y=0 width=4 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=161 x=229 y=17 width=8 height=6 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15 +char id=162 x=20 y=33 width=4 height=5 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=163 x=115 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=164 x=231 y=0 width=3 height=8 xoffset=-1 yoffset=1 xadvance=2 page=0 chnl=15 +char id=165 x=37 y=33 width=8 height=4 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=166 x=79 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=167 x=153 y=26 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=168 x=139 y=37 width=3 height=1 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=169 x=0 y=26 width=6 height=6 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15 +char id=170 x=13 y=39 width=3 height=2 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=171 x=28 y=38 width=2 height=2 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=172 x=28 y=33 width=8 height=4 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=15 +char id=173 x=90 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=174 x=238 y=17 width=6 height=6 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15 +char id=175 x=75 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=176 x=182 y=32 width=3 height=3 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=177 x=85 y=26 width=4 height=6 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=178 x=135 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=179 x=248 y=23 width=5 height=5 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=180 x=31 y=38 width=2 height=2 xoffset=1 yoffset=2 xadvance=4 page=0 chnl=15 +char id=181 x=64 y=33 width=4 height=4 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=182 x=60 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=183 x=86 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=184 x=135 y=37 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=185 x=148 y=0 width=3 height=9 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=186 x=49 y=38 width=5 height=1 xoffset=0 yoffset=8 xadvance=5 page=0 chnl=15 +char id=187 x=253 y=29 width=2 height=2 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=15 +char id=188 x=5 y=33 width=4 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=189 x=74 y=33 width=4 height=4 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=190 x=69 y=33 width=4 height=4 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=191 x=210 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=192 x=177 y=0 width=7 height=8 xoffset=0 yoffset=1 xadvance=7 page=0 chnl=15 +char id=193 x=62 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=194 x=143 y=37 width=3 height=1 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=195 x=109 y=33 width=4 height=4 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=196 x=203 y=0 width=5 height=8 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=197 x=68 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=198 x=13 y=26 width=5 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=199 x=209 y=0 width=5 height=8 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=200 x=165 y=26 width=1 height=6 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=201 x=44 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=202 x=190 y=31 width=3 height=3 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15 +char id=203 x=170 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=204 x=226 y=0 width=4 height=8 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=205 x=245 y=16 width=6 height=6 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=15 +char id=206 x=120 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=207 x=11 y=0 width=7 height=9 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=208 x=79 y=33 width=4 height=4 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=209 x=116 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=210 x=46 y=33 width=5 height=4 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=211 x=125 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=212 x=130 y=26 width=4 height=6 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=213 x=25 y=39 width=2 height=2 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15 +char id=214 x=197 y=0 width=5 height=8 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=215 x=94 y=33 width=4 height=4 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=216 x=15 y=33 width=4 height=5 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=217 x=118 y=33 width=3 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=218 x=122 y=33 width=2 height=4 xoffset=0 yoffset=3 xadvance=3 page=0 chnl=15 +char id=219 x=89 y=33 width=4 height=4 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=220 x=191 y=0 width=5 height=8 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=221 x=157 y=26 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=222 x=140 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=223 x=60 y=18 width=5 height=7 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=224 x=155 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=225 x=25 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=226 x=6 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=227 x=185 y=17 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=228 x=30 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=229 x=130 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=230 x=92 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=231 x=35 y=26 width=4 height=6 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=232 x=42 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=233 x=40 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=234 x=36 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=235 x=45 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=236 x=199 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=15 +char id=237 x=196 y=17 width=2 height=7 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=15 +char id=238 x=252 y=8 width=3 height=7 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=15 +char id=239 x=149 y=26 width=3 height=6 xoffset=-1 yoffset=3 xadvance=2 page=0 chnl=15 +char id=240 x=163 y=33 width=4 height=3 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=241 x=140 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=242 x=204 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=243 x=50 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=244 x=234 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=245 x=108 y=18 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=246 x=55 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=247 x=80 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=248 x=74 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=249 x=198 y=9 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=250 x=65 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=251 x=250 y=0 width=5 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=252 x=70 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=253 x=161 y=26 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=254 x=19 y=26 width=5 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=255 x=56 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=262 x=150 y=37 width=1 height=1 xoffset=1 yoffset=5 xadvance=3 page=0 chnl=15 +char id=263 x=178 y=32 width=3 height=3 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=268 x=223 y=30 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=269 x=186 y=32 width=3 height=3 xoffset=0 yoffset=7 xadvance=4 page=0 chnl=15 +char id=273 x=5 y=39 width=3 height=2 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=286 x=75 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=287 x=80 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=304 x=125 y=33 width=20 height=3 xoffset=0 yoffset=6 xadvance=21 page=0 chnl=15 +char id=305 x=29 y=10 width=8 height=7 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=321 x=131 y=37 width=3 height=1 xoffset=-1 yoffset=10 xadvance=5 page=0 chnl=15 +char id=322 x=111 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=5 page=0 chnl=15 +char id=338 x=34 y=38 width=1 height=2 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=15 +char id=339 x=252 y=16 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=350 x=254 y=23 width=1 height=3 xoffset=0 yoffset=6 xadvance=2 page=0 chnl=15 +char id=351 x=248 y=29 width=4 height=2 xoffset=1 yoffset=3 xadvance=5 page=0 chnl=15 +char id=352 x=95 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=4 page=0 chnl=15 +char id=353 x=87 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=4 page=0 chnl=15 +char id=376 x=168 y=0 width=2 height=9 xoffset=0 yoffset=0 xadvance=2 page=0 chnl=15 +char id=381 x=91 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=382 x=107 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=402 x=60 y=38 width=4 height=1 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=710 x=20 y=10 width=8 height=7 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=15 +char id=711 x=160 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=15 +char id=713 x=123 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=728 x=7 y=26 width=5 height=6 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=15 +char id=729 x=145 y=26 width=3 height=6 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=730 x=103 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=731 x=19 y=0 width=6 height=9 xoffset=0 yoffset=0 xadvance=7 page=0 chnl=15 +char id=732 x=239 y=0 width=10 height=7 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=15 +char id=733 x=119 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=916 x=243 y=30 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=937 x=127 y=37 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=956 x=104 y=33 width=4 height=4 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=960 x=235 y=0 width=3 height=8 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=15 +char id=8208 x=65 y=38 width=4 height=1 xoffset=0 yoffset=6 xadvance=4 page=0 chnl=15 +char id=8211 x=254 y=27 width=1 height=1 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=15 +char id=8212 x=200 y=31 width=2 height=3 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=15 +char id=8216 x=32 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8217 x=26 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8218 x=50 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8220 x=173 y=32 width=4 height=3 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=15 +char id=8221 x=220 y=17 width=8 height=6 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15 +char id=8222 x=17 y=39 width=3 height=2 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8224 x=114 y=33 width=3 height=4 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=15 +char id=8225 x=38 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8226 x=9 y=39 width=3 height=2 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=8230 x=84 y=33 width=4 height=4 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=15 +char id=8240 x=228 y=30 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8249 x=174 y=0 width=2 height=9 xoffset=0 yoffset=0 xadvance=2 page=0 chnl=15 +char id=8250 x=122 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8260 x=160 y=0 width=3 height=9 xoffset=-1 yoffset=0 xadvance=2 page=0 chnl=15 +char id=8355 x=145 y=18 width=4 height=7 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=15 +char id=8482 x=203 y=31 width=7 height=2 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=15 +char id=8486 x=83 y=38 width=3 height=1 xoffset=-1 yoffset=10 xadvance=3 page=0 chnl=15 +char id=8706 x=95 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8710 x=233 y=30 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8719 x=153 y=33 width=4 height=3 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=8721 x=167 y=26 width=1 height=6 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8722 x=100 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8729 x=110 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=8730 x=99 y=38 width=3 height=1 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=8734 x=0 y=33 width=4 height=5 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8747 x=217 y=30 width=5 height=2 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=15 +char id=8776 x=238 y=30 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=8800 x=211 y=17 width=8 height=6 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=15 +char id=8804 x=105 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8805 x=110 y=26 width=4 height=6 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=15 +char id=8946 x=0 y=39 width=4 height=2 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=15 +char id=9674 x=215 y=0 width=5 height=8 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=15 +char id=61440 x=70 y=38 width=4 height=1 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=15 +char id=61441 x=104 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 +char id=61442 x=98 y=0 width=5 height=9 xoffset=0 yoffset=0 xadvance=6 page=0 chnl=15 diff --git a/src/love/fonts/pixel_small_0.png b/src/love/fonts/pixel_small_0.png new file mode 100644 index 00000000..35c8d629 Binary files /dev/null and b/src/love/fonts/pixel_small_0.png differ diff --git a/src/love/images/dds/rating.dds b/src/love/images/dds/rating.dds index b9546f82..6677a259 100644 Binary files a/src/love/images/dds/rating.dds and b/src/love/images/dds/rating.dds differ diff --git a/src/love/images/dds/week5/boyfriend.dds b/src/love/images/dds/week5/boyfriend.dds index 77f68ff1..598385bf 100644 Binary files a/src/love/images/dds/week5/boyfriend.dds and b/src/love/images/dds/week5/boyfriend.dds differ diff --git a/src/love/images/dds/week5/girlfriend.dds b/src/love/images/dds/week5/girlfriend.dds index caa9ff70..661da1bd 100644 Binary files a/src/love/images/dds/week5/girlfriend.dds and b/src/love/images/dds/week5/girlfriend.dds differ diff --git a/src/love/images/dds/week5/monster.dds b/src/love/images/dds/week5/monster.dds index 121b4363..c8263e75 100644 Binary files a/src/love/images/dds/week5/monster.dds and b/src/love/images/dds/week5/monster.dds differ diff --git a/src/love/images/png/boyfriend.png b/src/love/images/png/boyfriend.png index 9e854feb..236975ea 100644 Binary files a/src/love/images/png/boyfriend.png and b/src/love/images/png/boyfriend.png differ diff --git a/src/love/images/png/girlfriend.png b/src/love/images/png/girlfriend.png index 5a3c3b3d..e52cb815 100644 Binary files a/src/love/images/png/girlfriend.png and b/src/love/images/png/girlfriend.png differ diff --git a/src/love/images/png/icons.png b/src/love/images/png/icons.png index 1821e7c4..870a077a 100644 Binary files a/src/love/images/png/icons.png and b/src/love/images/png/icons.png differ diff --git a/src/love/images/png/lol.png b/src/love/images/png/lol.png index 7154ea12..26143651 100644 Binary files a/src/love/images/png/lol.png and b/src/love/images/png/lol.png differ diff --git a/src/love/images/png/menu/girlfriend-title.png b/src/love/images/png/menu/girlfriend-title.png index c271e066..8fc0e771 100644 Binary files a/src/love/images/png/menu/girlfriend-title.png and b/src/love/images/png/menu/girlfriend-title.png differ diff --git a/src/love/images/png/menu/logo.png b/src/love/images/png/menu/logo.png index 1c1c1a6f..93ec77e8 100644 Binary files a/src/love/images/png/menu/logo.png and b/src/love/images/png/menu/logo.png differ diff --git a/src/love/images/png/menu/title-bg.png b/src/love/images/png/menu/title-bg.png index 3a5f4b8b..7ef8b28c 100644 Binary files a/src/love/images/png/menu/title-bg.png and b/src/love/images/png/menu/title-bg.png differ diff --git a/src/love/images/png/notes.png b/src/love/images/png/notes.png index 39d44b86..116f3409 100644 Binary files a/src/love/images/png/notes.png and b/src/love/images/png/notes.png differ diff --git a/src/love/images/png/numbers.png b/src/love/images/png/numbers.png index c3cb0949..b00885b5 100644 Binary files a/src/love/images/png/numbers.png and b/src/love/images/png/numbers.png differ diff --git a/src/love/images/png/pico.png b/src/love/images/png/pico.png index 53f81cd5..f11b361f 100644 Binary files a/src/love/images/png/pico.png and b/src/love/images/png/pico.png differ diff --git a/src/love/images/png/pixel/boyfriend-dead.png b/src/love/images/png/pixel/boyfriend-dead.png new file mode 100644 index 00000000..9b442987 Binary files /dev/null and b/src/love/images/png/pixel/boyfriend-dead.png differ diff --git a/src/love/images/png/pixel/boyfriend.png b/src/love/images/png/pixel/boyfriend.png index 4c6cb1eb..4df1a13a 100644 Binary files a/src/love/images/png/pixel/boyfriend.png and b/src/love/images/png/pixel/boyfriend.png differ diff --git a/src/love/images/png/pixel/girlfriend.png b/src/love/images/png/pixel/girlfriend.png index b43b3f63..d966b5d5 100644 Binary files a/src/love/images/png/pixel/girlfriend.png and b/src/love/images/png/pixel/girlfriend.png differ diff --git a/src/love/images/png/pixel/icons.png b/src/love/images/png/pixel/icons.png index fefd8f98..92c9b6ab 100644 Binary files a/src/love/images/png/pixel/icons.png and b/src/love/images/png/pixel/icons.png differ diff --git a/src/love/images/png/pixel/notes.png b/src/love/images/png/pixel/notes.png index 59484c7c..46f76dbc 100644 Binary files a/src/love/images/png/pixel/notes.png and b/src/love/images/png/pixel/notes.png differ diff --git a/src/love/images/png/pixel/numbers.png b/src/love/images/png/pixel/numbers.png new file mode 100644 index 00000000..574c4353 Binary files /dev/null and b/src/love/images/png/pixel/numbers.png differ diff --git a/src/love/images/png/pixel/rating.png b/src/love/images/png/pixel/rating.png new file mode 100644 index 00000000..d4a8e20a Binary files /dev/null and b/src/love/images/png/pixel/rating.png differ diff --git a/src/love/images/png/rating.png b/src/love/images/png/rating.png index fc7e9444..0ad6adda 100644 Binary files a/src/love/images/png/rating.png and b/src/love/images/png/rating.png differ diff --git a/src/love/images/png/week1/curtains.png b/src/love/images/png/week1/curtains.png index e077a080..75352b61 100644 Binary files a/src/love/images/png/week1/curtains.png and b/src/love/images/png/week1/curtains.png differ diff --git a/src/love/images/png/week1/daddy-dearest.png b/src/love/images/png/week1/daddy-dearest.png index d0073451..c52516ec 100644 Binary files a/src/love/images/png/week1/daddy-dearest.png and b/src/love/images/png/week1/daddy-dearest.png differ diff --git a/src/love/images/png/week1/stage-back.png b/src/love/images/png/week1/stage-back.png index 927d2aed..3278777f 100644 Binary files a/src/love/images/png/week1/stage-back.png and b/src/love/images/png/week1/stage-back.png differ diff --git a/src/love/images/png/week1/stage-front.png b/src/love/images/png/week1/stage-front.png index 735f6728..c6dc6baa 100644 Binary files a/src/love/images/png/week1/stage-front.png and b/src/love/images/png/week1/stage-front.png differ diff --git a/src/love/images/png/week2/haunted-house.png b/src/love/images/png/week2/haunted-house.png index 34fb0713..d2881046 100644 Binary files a/src/love/images/png/week2/haunted-house.png and b/src/love/images/png/week2/haunted-house.png differ diff --git a/src/love/images/png/week2/skid-and-pump.png b/src/love/images/png/week2/skid-and-pump.png index 11baf280..ce6df6fc 100644 Binary files a/src/love/images/png/week2/skid-and-pump.png and b/src/love/images/png/week2/skid-and-pump.png differ diff --git a/src/love/images/png/week3/behind-train.png b/src/love/images/png/week3/behind-train.png index dc0fb597..e06449ac 100644 Binary files a/src/love/images/png/week3/behind-train.png and b/src/love/images/png/week3/behind-train.png differ diff --git a/src/love/images/png/week3/city-windows.png b/src/love/images/png/week3/city-windows.png index c93afcd3..cb63f5c2 100644 Binary files a/src/love/images/png/week3/city-windows.png and b/src/love/images/png/week3/city-windows.png differ diff --git a/src/love/images/png/week3/city.png b/src/love/images/png/week3/city.png index b002c7b2..bf9ba802 100644 Binary files a/src/love/images/png/week3/city.png and b/src/love/images/png/week3/city.png differ diff --git a/src/love/images/png/week3/sky.png b/src/love/images/png/week3/sky.png index 73655a50..421b40bb 100644 Binary files a/src/love/images/png/week3/sky.png and b/src/love/images/png/week3/sky.png differ diff --git a/src/love/images/png/week3/street.png b/src/love/images/png/week3/street.png index 15636546..d8ded2d6 100644 Binary files a/src/love/images/png/week3/street.png and b/src/love/images/png/week3/street.png differ diff --git a/src/love/images/png/week4/bg-limo.png b/src/love/images/png/week4/bg-limo.png index 338f4d46..b7a01e77 100644 Binary files a/src/love/images/png/week4/bg-limo.png and b/src/love/images/png/week4/bg-limo.png differ diff --git a/src/love/images/png/week4/boyfriend.png b/src/love/images/png/week4/boyfriend.png index 5e2b7088..ecc0b626 100644 Binary files a/src/love/images/png/week4/boyfriend.png and b/src/love/images/png/week4/boyfriend.png differ diff --git a/src/love/images/png/week4/girlfriend.png b/src/love/images/png/week4/girlfriend.png index 7a2bb74d..50c57cb9 100644 Binary files a/src/love/images/png/week4/girlfriend.png and b/src/love/images/png/week4/girlfriend.png differ diff --git a/src/love/images/png/week4/limo-dancer.png b/src/love/images/png/week4/limo-dancer.png index a4c1f819..92274a74 100644 Binary files a/src/love/images/png/week4/limo-dancer.png and b/src/love/images/png/week4/limo-dancer.png differ diff --git a/src/love/images/png/week4/limo.png b/src/love/images/png/week4/limo.png index 2e82009d..6d6a1cb8 100644 Binary files a/src/love/images/png/week4/limo.png and b/src/love/images/png/week4/limo.png differ diff --git a/src/love/images/png/week4/mommy-mearest.png b/src/love/images/png/week4/mommy-mearest.png index 8b334f11..d397f247 100644 Binary files a/src/love/images/png/week4/mommy-mearest.png and b/src/love/images/png/week4/mommy-mearest.png differ diff --git a/src/love/images/png/week4/sunset.png b/src/love/images/png/week4/sunset.png index 3808ef0c..62f2c14d 100644 Binary files a/src/love/images/png/week4/sunset.png and b/src/love/images/png/week4/sunset.png differ diff --git a/src/love/images/png/week5/bottom-bop.png b/src/love/images/png/week5/bottom-bop.png index e2c83b1c..7ea3003b 100644 Binary files a/src/love/images/png/week5/bottom-bop.png and b/src/love/images/png/week5/bottom-bop.png differ diff --git a/src/love/images/png/week5/boyfriend.png b/src/love/images/png/week5/boyfriend.png index 90f6f61d..6ee113cf 100644 Binary files a/src/love/images/png/week5/boyfriend.png and b/src/love/images/png/week5/boyfriend.png differ diff --git a/src/love/images/png/week5/christmas-tree.png b/src/love/images/png/week5/christmas-tree.png index d71f569c..ffdbeaf4 100644 Binary files a/src/love/images/png/week5/christmas-tree.png and b/src/love/images/png/week5/christmas-tree.png differ diff --git a/src/love/images/png/week5/christmas-wall.png b/src/love/images/png/week5/christmas-wall.png index 4c6d4537..6a443c8a 100644 Binary files a/src/love/images/png/week5/christmas-wall.png and b/src/love/images/png/week5/christmas-wall.png differ diff --git a/src/love/images/png/week5/dearest-duo.png b/src/love/images/png/week5/dearest-duo.png index b4410664..f26cf3c0 100644 Binary files a/src/love/images/png/week5/dearest-duo.png and b/src/love/images/png/week5/dearest-duo.png differ diff --git a/src/love/images/png/week5/escalator.png b/src/love/images/png/week5/escalator.png index 8e1d8806..cb1884ee 100644 Binary files a/src/love/images/png/week5/escalator.png and b/src/love/images/png/week5/escalator.png differ diff --git a/src/love/images/png/week5/evil-bg.png b/src/love/images/png/week5/evil-bg.png index 65ba5b1b..6278eeda 100644 Binary files a/src/love/images/png/week5/evil-bg.png and b/src/love/images/png/week5/evil-bg.png differ diff --git a/src/love/images/png/week5/evil-snow.png b/src/love/images/png/week5/evil-snow.png index 9b4d96e4..0f96080a 100644 Binary files a/src/love/images/png/week5/evil-snow.png and b/src/love/images/png/week5/evil-snow.png differ diff --git a/src/love/images/png/week5/evil-tree.png b/src/love/images/png/week5/evil-tree.png index 58c681ad..470cf046 100644 Binary files a/src/love/images/png/week5/evil-tree.png and b/src/love/images/png/week5/evil-tree.png differ diff --git a/src/love/images/png/week5/girlfriend.png b/src/love/images/png/week5/girlfriend.png index 79ff531d..3f3aff7f 100644 Binary files a/src/love/images/png/week5/girlfriend.png and b/src/love/images/png/week5/girlfriend.png differ diff --git a/src/love/images/png/week5/monster.png b/src/love/images/png/week5/monster.png index db7c81da..e823e54a 100644 Binary files a/src/love/images/png/week5/monster.png and b/src/love/images/png/week5/monster.png differ diff --git a/src/love/images/png/week5/santa.png b/src/love/images/png/week5/santa.png index 472b33e5..b65ea0fc 100644 Binary files a/src/love/images/png/week5/santa.png and b/src/love/images/png/week5/santa.png differ diff --git a/src/love/images/png/week5/snow.png b/src/love/images/png/week5/snow.png index baba7d20..5bea2fce 100644 Binary files a/src/love/images/png/week5/snow.png and b/src/love/images/png/week5/snow.png differ diff --git a/src/love/images/png/week5/top-bop.png b/src/love/images/png/week5/top-bop.png index a56e9cd3..e043a7ec 100644 Binary files a/src/love/images/png/week5/top-bop.png and b/src/love/images/png/week5/top-bop.png differ diff --git a/src/love/images/png/week5/walls.png b/src/love/images/png/week5/walls.png index 87f33472..e66632dc 100644 Binary files a/src/love/images/png/week5/walls.png and b/src/love/images/png/week5/walls.png differ diff --git a/src/love/images/png/week6/evil-school.png b/src/love/images/png/week6/evil-school.png index 9a09ca9c..e80d0269 100644 Binary files a/src/love/images/png/week6/evil-school.png and b/src/love/images/png/week6/evil-school.png differ diff --git a/src/love/images/png/week6/freaks.png b/src/love/images/png/week6/freaks.png new file mode 100644 index 00000000..1e026220 Binary files /dev/null and b/src/love/images/png/week6/freaks.png differ diff --git a/src/love/images/png/week6/petals.png b/src/love/images/png/week6/petals.png new file mode 100644 index 00000000..e00c133c Binary files /dev/null and b/src/love/images/png/week6/petals.png differ diff --git a/src/love/images/png/week6/school.png b/src/love/images/png/week6/school.png index 413eb55d..4c199d38 100644 Binary files a/src/love/images/png/week6/school.png and b/src/love/images/png/week6/school.png differ diff --git a/src/love/images/png/week6/senpai.png b/src/love/images/png/week6/senpai.png index 2f14de1d..c0c2100c 100644 Binary files a/src/love/images/png/week6/senpai.png and b/src/love/images/png/week6/senpai.png differ diff --git a/src/love/images/png/week6/sky.png b/src/love/images/png/week6/sky.png index f3e2d6ac..b6480717 100644 Binary files a/src/love/images/png/week6/sky.png and b/src/love/images/png/week6/sky.png differ diff --git a/src/love/images/png/week6/spirit.png b/src/love/images/png/week6/spirit.png index ced6935d..1f0c4b4e 100644 Binary files a/src/love/images/png/week6/spirit.png and b/src/love/images/png/week6/spirit.png differ diff --git a/src/love/images/png/week6/street.png b/src/love/images/png/week6/street.png index 85a84545..0e86e7aa 100644 Binary files a/src/love/images/png/week6/street.png and b/src/love/images/png/week6/street.png differ diff --git a/src/love/images/png/week6/trees-back.png b/src/love/images/png/week6/trees-back.png index 1f83b58d..87b74f12 100644 Binary files a/src/love/images/png/week6/trees-back.png and b/src/love/images/png/week6/trees-back.png differ diff --git a/src/love/images/png/week6/trees.png b/src/love/images/png/week6/trees.png index 169bc51b..8b631f51 100644 Binary files a/src/love/images/png/week6/trees.png and b/src/love/images/png/week6/trees.png differ diff --git a/src/love/main.lua b/src/love/main.lua index 5f4e486e..59464c90 100644 --- a/src/love/main.lua +++ b/src/love/main.lua @@ -182,6 +182,9 @@ settingsVer=3 0 -- Boyfriend } + gameOver = false + storyMode = false + cam = {x = 0, y = 0, sizeX = 0.9, sizeY = 0.9} camScale = {x = 0.9, y = 0.9} uiScale = {x = 0.7, y = 0.7} @@ -216,9 +219,13 @@ function love.update(dt) if status.getNoResize() then Gamestate.update(dt) else + love.graphics.setFont(font) graphics.screenBase(lovesize.getWidth(), lovesize.getHeight()) + graphics.setColor(1, 1, 1) -- Fade effect on Gamestate.update(dt) + love.graphics.setColor(1, 1, 1) -- Fade effect off graphics.screenBase(love.graphics.getWidth(), love.graphics.getHeight()) + love.graphics.setFont(font) end Timer.update(dt) @@ -226,11 +233,11 @@ end function love.draw() love.graphics.setFont(font) - if status.getNoResize() then graphics.setColor(1, 1, 1) -- Fade effect on Gamestate.draw() love.graphics.setColor(1, 1, 1) -- Fade effect off + love.graphics.setFont(font) if status.getLoading() then love.graphics.print("Loading...", graphics.getWidth() - 175, graphics.getHeight() - 50) @@ -241,6 +248,7 @@ function love.draw() graphics.setColor(1, 1, 1) -- Fade effect on Gamestate.draw() love.graphics.setColor(1, 1, 1) -- Fade effect off + love.graphics.setFont(font) if status.getLoading() then love.graphics.print("Loading...", lovesize.getWidth() - 175, lovesize.getHeight() - 50) diff --git a/src/love/menu.lua b/src/love/menu.lua index 2e39d99d..18d46746 100644 --- a/src/love/menu.lua +++ b/src/love/menu.lua @@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local menuState, songNum, songAppend + local titleBG = graphics.newImage(love.graphics.newImage(graphics.imagePath("menu/title-bg"))) local logo = graphics.newImage(love.graphics.newImage(graphics.imagePath("menu/logo"))) @@ -83,7 +85,7 @@ girlfriendTitle.x, girlfriendTitle.y = 300, -75 music:setLooping(true) return { - enter = function(self) + enter = function(self, previous) gameOver = false storyMode = false @@ -169,7 +171,7 @@ return { storyMode = true end - Gamestate.switch(weekData[weekNum]) + Gamestate.switch(weekData[weekNum], songNum, songAppend) status.setLoading(false) end diff --git a/src/love/modules/graphics.lua b/src/love/modules/graphics.lua index 7d8b6871..65cc26a5 100644 --- a/src/love/modules/graphics.lua +++ b/src/love/modules/graphics.lua @@ -52,9 +52,11 @@ return { return imageType end, - newImage = function(imageData) + newImage = function(imageData, optionsTable) local image, width, height + local options + local object = { x = 0, y = 0, @@ -77,6 +79,14 @@ return { end, draw = function(self) + local x = self.x + local y = self.y + + if options and options.floored then + x = math.floor(x) + y = math.floor(y) + end + love.graphics.draw( image, self.x, @@ -84,8 +94,8 @@ return { self.orientation, self.sizeX, self.sizeY, - width / 2 + self.offsetX, - height / 2 + self.offsetY, + math.floor(width / 2) + self.offsetX, + math.floor(height / 2) + self.offsetY, self.shearX, self.shearY ) @@ -94,10 +104,12 @@ return { object:setImage(imageData) + options = optionsTable + return object end, - newSprite = function(imageData, frameData, animData, animName, loopAnim) + newSprite = function(imageData, frameData, animData, animName, loopAnim, optionsTable) local sheet, sheetWidth, sheetHeight local frames = {} @@ -115,6 +127,8 @@ return { local isAnimated local isLooped + local options + local object = { x = 0, y = 0, @@ -149,6 +163,9 @@ return { isAnimated = true end, + getAnims = function(self) + return anims + end, getAnimName = function(self) return anim.name end, @@ -162,182 +179,11 @@ return { return isLooped end, - update = function(self, dt) - if isAnimated then - frame = frame + anim.speed * dt - end - - if isAnimated and frame > anim.stop then - if isLooped then - frame = anim.start - else - isAnimated = false - end - end - end, - draw = function(self) - local flooredFrame = math.floor(frame) - - if flooredFrame <= anim.stop then - local width, height - - if frameData[flooredFrame].offsetWidth == 0 then - width = frameData[flooredFrame].width / 2 - else - width = frameData[flooredFrame].offsetWidth / 2 + frameData[flooredFrame].offsetX - end - if frameData[flooredFrame].offsetHeight == 0 then - height = frameData[flooredFrame].height / 2 - else - height = frameData[flooredFrame].offsetHeight / 2 + frameData[flooredFrame].offsetY - end - - love.graphics.draw( - sheet, - frames[flooredFrame], - self.x, - self.y, - self.orientation, - self.sizeX, - self.sizeY, - width + anim.offsetX + self.offsetX, - height + anim.offsetY + self.offsetY, - self.shearX, - self.shearY - ) - end - end - } - - object:setSheet(imageData) - - for i = 1, #frameData do - table.insert( - frames, - love.graphics.newQuad( - frameData[i].x, - frameData[i].y, - frameData[i].width, - frameData[i].height, - sheetWidth, - sheetHeight - ) - ) - end - - object:animate(animName, loopAnim) - - return object - end, - - newPixelImage = function(imageData) - local image, width, height - - local object = { - x = 0, - y = 0, - orientation = 0, - sizeX = 1, - sizeY = 1, - offsetX = 0, - offsetY = 0, - shearX = 0, - shearY = 0, - - setImage = function(self, imageData) - image = imageData - width = image:getWidth() - height = image:getHeight() + setOptions = function(self, optionsTable) + options = optionsTable end, - - getImage = function(self) - return image - end, - - draw = function(self) - love.graphics.draw( - image, - self.x + 0.5, - self.y + 0.5, - self.orientation, - self.sizeX, - self.sizeY, - width / 2 + self.offsetX, - height / 2 + self.offsetY, - self.shearX, - self.shearY - ) - end - } - - object:setImage(imageData) - - return object - end, - - newPixelSprite = function(imageData, frameData, animData, animName, loopAnim) - local sheet, sheetWidth, sheetHeight - - local frames = {} - local frame - local anims = animData - local anim = { - name = nil, - start = nil, - stop = nil, - speed = nil, - offsetX = nil, - offsetY = nil - } - - local isAnimated - local isLooped - - local object = { - x = 0, - y = 0, - orientation = 0, - sizeX = 1, - sizeY = 1, - offsetX = 0, - offsetY = 0, - shearX = 0, - shearY = 0, - - setSheet = function(self, imageData) - sheet = imageData - sheetWidth = sheet:getWidth() - sheetHeight = sheet:getHeight() - end, - - getSheet = function(self) - return sheet - end, - - animate = function(self, animName, loopAnim) - anim.name = animName - anim.start = anims[animName].start - anim.stop = anims[animName].stop - anim.speed = anims[animName].speed - anim.offsetX = anims[animName].offsetX - anim.offsetY = anims[animName].offsetY - - frame = anim.start - isLooped = loopAnim - - isAnimated = true - end, - getAnimName = function(self) - return anim.name - end, - setAnimSpeed = function(self, speed) - anim.speed = speed - end, - isAnimated = function(self) - return isAnimated - end, - isLooped = function(self) - return isLooped + getOptions = function(self) + return options end, update = function(self, dt) @@ -357,24 +203,41 @@ return { local flooredFrame = math.floor(frame) if flooredFrame <= anim.stop then - local width, height - - if frameData[flooredFrame].offsetWidth == 0 then - width = frameData[flooredFrame].width / 2 - else - width = frameData[flooredFrame].offsetWidth / 2 + frameData[flooredFrame].offsetX + local x = self.x + local y = self.y + local width + local height + + if options and options.floored then + x = math.floor(x) + y = math.floor(y) end - if frameData[flooredFrame].offsetHeight == 0 then - height = frameData[flooredFrame].height / 2 + + if options and options.noOffset then + if frameData[flooredFrame].offsetWidth ~= 0 then + width = frameData[flooredFrame].offsetX + end + if frameData[flooredFrame].offsetHeight ~= 0 then + height = frameData[flooredFrame].offsetY + end else - height = frameData[flooredFrame].offsetHeight / 2 + frameData[flooredFrame].offsetY + if frameData[flooredFrame].offsetWidth == 0 then + width = math.floor(frameData[flooredFrame].width / 2) + else + width = math.floor(frameData[flooredFrame].offsetWidth / 2) + frameData[flooredFrame].offsetX + end + if frameData[flooredFrame].offsetHeight == 0 then + height = math.floor(frameData[flooredFrame].height / 2) + else + height = math.floor(frameData[flooredFrame].offsetHeight / 2) + frameData[flooredFrame].offsetY + end end love.graphics.draw( sheet, frames[flooredFrame], - self.x + 0.5, - self.y + 0.5, + x, + y, self.orientation, self.sizeX, self.sizeY, @@ -405,6 +268,8 @@ return { object:animate(animName, loopAnim) + options = optionsTable + return object end, diff --git a/src/love/sounds/miss1.ogg b/src/love/sounds/miss1.ogg index b8bfc8ea..b91c1cf2 100644 Binary files a/src/love/sounds/miss1.ogg and b/src/love/sounds/miss1.ogg differ diff --git a/src/love/sounds/miss2.ogg b/src/love/sounds/miss2.ogg index c38c4849..b6224361 100644 Binary files a/src/love/sounds/miss2.ogg and b/src/love/sounds/miss2.ogg differ diff --git a/src/love/sounds/miss3.ogg b/src/love/sounds/miss3.ogg index 59506db6..0a91a212 100644 Binary files a/src/love/sounds/miss3.ogg and b/src/love/sounds/miss3.ogg differ diff --git a/src/love/sounds/pixel/death.ogg b/src/love/sounds/pixel/death.ogg new file mode 100644 index 00000000..f07a2719 Binary files /dev/null and b/src/love/sounds/pixel/death.ogg differ diff --git a/src/love/sounds/pixel/miss1.ogg b/src/love/sounds/pixel/miss1.ogg new file mode 100644 index 00000000..2171e90b Binary files /dev/null and b/src/love/sounds/pixel/miss1.ogg differ diff --git a/src/love/sounds/pixel/miss2.ogg b/src/love/sounds/pixel/miss2.ogg new file mode 100644 index 00000000..df387958 Binary files /dev/null and b/src/love/sounds/pixel/miss2.ogg differ diff --git a/src/love/sounds/pixel/miss3.ogg b/src/love/sounds/pixel/miss3.ogg new file mode 100644 index 00000000..39778f74 Binary files /dev/null and b/src/love/sounds/pixel/miss3.ogg differ diff --git a/src/love/sprites/pixel/boyfriend-dead.lua b/src/love/sprites/pixel/boyfriend-dead.lua new file mode 100644 index 00000000..17fa7bf6 --- /dev/null +++ b/src/love/sprites/pixel/boyfriend-dead.lua @@ -0,0 +1,158 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("pixel/boyfriend-dead")), + -- Automatically generated from bfPixelsDEAD.xml + { + {x = 0, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: BF Dies pixel0000 + {x = 100, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: BF Dies pixel0001 + {x = 200, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: BF Dies pixel0002 + {x = 300, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: BF Dies pixel0003 + {x = 300, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: BF Dies pixel0004 + {x = 400, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: BF Dies pixel0005 + {x = 400, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: BF Dies pixel0006 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: BF Dies pixel0007 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: BF Dies pixel0008 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: BF Dies pixel0009 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: BF Dies pixel0010 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: BF Dies pixel0011 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: BF Dies pixel0012 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: BF Dies pixel0013 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: BF Dies pixel0014 + {x = 500, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: BF Dies pixel0015 + {x = 600, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: BF Dies pixel0016 + {x = 600, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: BF Dies pixel0017 + {x = 600, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: BF Dies pixel0018 + {x = 700, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 20: BF Dies pixel0019 + {x = 700, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 21: BF Dies pixel0020 + {x = 700, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 22: BF Dies pixel0021 + {x = 800, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 23: BF Dies pixel0022 + {x = 800, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 24: BF Dies pixel0023 + {x = 900, y = 0, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 25: BF Dies pixel0024 + {x = 0, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 26: BF Dies pixel0025 + {x = 0, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 27: BF Dies pixel0026 + {x = 100, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 28: BF Dies pixel0027 + {x = 100, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 29: BF Dies pixel0028 + {x = 200, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 30: BF Dies pixel0029 + {x = 200, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 31: BF Dies pixel0030 + {x = 300, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 32: BF Dies pixel0031 + {x = 300, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 33: BF Dies pixel0032 + {x = 300, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 34: BF Dies pixel0033 + {x = 400, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 35: BF Dies pixel0034 + {x = 500, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 36: BF Dies pixel0035 + {x = 600, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 37: BF Dies pixel0036 + {x = 700, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 38: BF Dies pixel0037 + {x = 800, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 39: BF Dies pixel0038 + {x = 900, y = 91, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 40: BF Dies pixel0039 + {x = 0, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 41: BF Dies pixel0040 + {x = 100, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 42: BF Dies pixel0041 + {x = 200, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 43: BF Dies pixel0042 + {x = 300, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 44: BF Dies pixel0043 + {x = 400, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 45: BF Dies pixel0044 + {x = 500, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 46: BF Dies pixel0045 + {x = 600, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 47: BF Dies pixel0046 + {x = 700, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 48: BF Dies pixel0047 + {x = 800, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 49: BF Dies pixel0048 + {x = 900, y = 182, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 50: BF Dies pixel0049 + {x = 0, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 51: BF Dies pixel0050 + {x = 100, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 52: BF Dies pixel0051 + {x = 200, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 53: BF Dies pixel0052 + {x = 300, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 54: BF Dies pixel0053 + {x = 400, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 55: BF Dies pixel0054 + {x = 500, y = 273, width = 90, height = 81, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 56: BF Dies pixel0055 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 57: BF Dies pixel0056 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 58: BF Dies pixel0057 + {x = 600, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 59: RETRY CONFIRM0000 + {x = 687, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 60: RETRY CONFIRM0001 + {x = 687, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 61: RETRY CONFIRM0002 + {x = 774, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 62: RETRY CONFIRM0003 + {x = 774, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 63: RETRY CONFIRM0004 + {x = 861, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 64: RETRY CONFIRM0005 + {x = 861, y = 273, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 65: RETRY CONFIRM0006 + {x = 0, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 66: RETRY CONFIRM0007 + {x = 87, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 67: RETRY CONFIRM0008 + {x = 174, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 68: RETRY CONFIRM0009 + {x = 261, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 69: RETRY CONFIRM0010 + {x = 348, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 70: RETRY CONFIRM0011 + {x = 435, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 71: RETRY CONFIRM0012 + {x = 522, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 72: RETRY CONFIRM0013 + {x = 609, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 73: RETRY CONFIRM0014 + {x = 696, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 74: RETRY CONFIRM0015 + {x = 783, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 75: RETRY CONFIRM0016 + {x = 870, y = 364, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 76: RETRY CONFIRM0017 + {x = 0, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 77: RETRY CONFIRM0018 + {x = 87, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 78: RETRY CONFIRM0019 + {x = 174, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 79: RETRY CONFIRM0020 + {x = 261, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 80: RETRY CONFIRM0021 + {x = 348, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 81: RETRY CONFIRM0022 + {x = 435, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 82: RETRY CONFIRM0023 + {x = 522, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 83: RETRY CONFIRM0024 + {x = 609, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 84: RETRY CONFIRM0025 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 85: RETRY CONFIRM0026 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 86: RETRY CONFIRM0027 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 87: RETRY CONFIRM0028 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 88: RETRY CONFIRM0029 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 89: RETRY CONFIRM0030 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 90: RETRY CONFIRM0031 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 91: RETRY CONFIRM0032 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 92: RETRY CONFIRM0033 + {x = 783, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 93: Retry Loop0000 + {x = 870, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 94: Retry Loop0001 + {x = 870, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 95: Retry Loop0002 + {x = 0, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 96: Retry Loop0003 + {x = 0, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 97: Retry Loop0004 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 98: Retry Loop0005 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 99: Retry Loop0006 + {x = 87, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 100: Retry Loop0007 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 101: Retry Loop0008 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 102: Retry Loop0009 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 103: Retry Loop0010 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 104: Retry Loop0011 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 105: Retry Loop0012 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 106: Retry Loop0013 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 107: Retry Loop0014 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 108: Retry Loop0015 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 109: Retry Loop0016 + {x = 783, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 110: Retry Loop0017 + {x = 870, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 111: Retry Loop0018 + {x = 870, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 112: Retry Loop0019 + {x = 0, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 113: Retry Loop0020 + {x = 0, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 114: Retry Loop0021 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 115: Retry Loop0022 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 116: Retry Loop0023 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 117: Retry Loop0024 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 118: Retry Loop0025 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 119: Retry Loop0026 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 120: Retry Loop0027 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 121: Retry Loop0028 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 122: Retry Loop0029 + {x = 87, y = 536, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 123: Retry Loop0030 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 124: Retry Loop0031 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 125: Retry Loop0032 + {x = 696, y = 450, width = 77, height = 76, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 126: Retry Loop0033 + }, + { + ["dies"] = {start = 1, stop = 58, speed = 24, offsetX = -2, offsetY = 0}, + ["dead confirm"] = {start = 59, stop = 92, speed = 24, offsetX = 0, offsetY = 0}, + ["dead"] = {start = 93, stop = 126, speed = 24, offsetX = 0, offsetY = 0} + }, + "dies", + false +) diff --git a/src/love/sprites/pixel/boyfriend.lua b/src/love/sprites/pixel/boyfriend.lua index 8d4c1a69..daf4822f 100644 --- a/src/love/sprites/pixel/boyfriend.lua +++ b/src/love/sprites/pixel/boyfriend.lua @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( love.graphics.newImage(graphics.imagePath("pixel/boyfriend")), -- Automatically generated from bfPixel.xml { diff --git a/src/love/sprites/pixel/down-arrow.lua b/src/love/sprites/pixel/down-arrow.lua index f3173c31..5eb9e397 100644 --- a/src/love/sprites/pixel/down-arrow.lua +++ b/src/love/sprites/pixel/down-arrow.lua @@ -17,16 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( images["notes"], { - {x = 19, y = 1, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Down Arrow - {x = 19, y = 19, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Down Arrow On - {x = 19, y = 37, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Down Arrow Press - {x = 19, y = 55, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Down Arrow Confirm 1 - {x = 19, y = 73, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Down Arrow Confirm 2 - {x = 9, y = 90, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Down Hold - {x = 9, y = 97, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Down End + {x = 18, y = 0, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Down Arrow + {x = 18, y = 18, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Down Arrow On + {x = 18, y = 36, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Down Arrow Press + {x = 18, y = 54, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Down Arrow Confirm 1 + {x = 18, y = 72, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Down Arrow Confirm 2 + {x = 8, y = 89, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Down Hold + {x = 8, y = 97, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Down End }, { ["off"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, @@ -37,5 +37,8 @@ return graphics.newPixelSprite( ["end"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0} }, "off", - false + false, + { + floored = true + } ) diff --git a/src/love/sprites/pixel/girlfriend.lua b/src/love/sprites/pixel/girlfriend.lua index b385def0..5deafa0a 100644 --- a/src/love/sprites/pixel/girlfriend.lua +++ b/src/love/sprites/pixel/girlfriend.lua @@ -2,7 +2,7 @@ This file is part of Friday Night Funkin' DOS by HTV04 ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( love.graphics.newImage(graphics.imagePath("pixel/girlfriend")), -- Automatically generated from gfPixel.xml { diff --git a/src/love/sprites/pixel/icons.lua b/src/love/sprites/pixel/icons.lua index 195f9cd8..8bce111f 100644 --- a/src/love/sprites/pixel/icons.lua +++ b/src/love/sprites/pixel/icons.lua @@ -2,7 +2,7 @@ This file is part of Friday Night Funkin' Rewritten by HTV04 ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( images["icons"], { {x = 0, y = 0, width = 30, height = 30, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Boyfriend @@ -15,5 +15,8 @@ return graphics.newPixelSprite( ["spirit"] = {start = 3, stop = 3, speed = 0, offsetX = 0, offsetY = 0} }, "boyfriend", - false + false, + { + floored = true + } ) diff --git a/src/love/sprites/pixel/left-arrow.lua b/src/love/sprites/pixel/left-arrow.lua index 248ac729..7afc63f0 100644 --- a/src/love/sprites/pixel/left-arrow.lua +++ b/src/love/sprites/pixel/left-arrow.lua @@ -17,16 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( images["notes"], { - {x = 1, y = 1, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Left Arrow - {x = 1, y = 19, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Left Arrow On - {x = 1, y = 37, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Left Arrow Press - {x = 1, y = 55, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Left Arrow Confirm 1 - {x = 1, y = 73, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Left Arrow Confirm 2 - {x = 1, y = 90, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Left Hold - {x = 1, y = 97, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Left End + {x = 0, y = 0, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Left Arrow + {x = 0, y = 18, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Left Arrow On + {x = 0, y = 36, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Left Arrow Press + {x = 0, y = 54, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Left Arrow Confirm 1 + {x = 0, y = 72, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Left Arrow Confirm 2 + {x = 0, y = 89, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Left Hold + {x = 0, y = 97, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Left End }, { ["off"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, @@ -37,5 +37,8 @@ return graphics.newPixelSprite( ["end"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0} }, "off", - false + false, + { + floored = true + } ) diff --git a/src/love/sprites/pixel/numbers.lua b/src/love/sprites/pixel/numbers.lua new file mode 100644 index 00000000..c726ce5a --- /dev/null +++ b/src/love/sprites/pixel/numbers.lua @@ -0,0 +1,51 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + images["numbers"], + { + {x = 0, y = 0, width = 9, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: 0 + {x = 10, y = 0, width = 9, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: 1 + {x = 20, y = 0, width = 10, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: 2 + {x = 31, y = 0, width = 10, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: 3 + {x = 42, y = 0, width = 10, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: 4 + {x = 53, y = 0, width = 10, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: 5 + {x = 64, y = 0, width = 10, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: 6 + {x = 75, y = 0, width = 9, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: 7 + {x = 85, y = 0, width = 9, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: 8 + {x = 95, y = 0, width = 9, height = 12, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: 9 + }, + { + ["0"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, + ["1"] = {start = 2, stop = 2, speed = 0, offsetX = 0, offsetY = 0}, + ["2"] = {start = 3, stop = 3, speed = 0, offsetX = 0, offsetY = 0}, + ["3"] = {start = 4, stop = 4, speed = 0, offsetX = 0, offsetY = 0}, + ["4"] = {start = 5, stop = 5, speed = 0, offsetX = 0, offsetY = 0}, + ["5"] = {start = 6, stop = 6, speed = 0, offsetX = 0, offsetY = 0}, + ["6"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0}, + ["7"] = {start = 8, stop = 8, speed = 0, offsetX = 0, offsetY = 0}, + ["8"] = {start = 9, stop = 9, speed = 0, offsetX = 0, offsetY = 0}, + ["9"] = {start = 10, stop = 10, speed = 0, offsetX = 0, offsetY = 0} + }, + "0", + false, + { + floored = true + } +) diff --git a/src/love/sprites/pixel/rating.lua b/src/love/sprites/pixel/rating.lua new file mode 100644 index 00000000..287e4eeb --- /dev/null +++ b/src/love/sprites/pixel/rating.lua @@ -0,0 +1,39 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("pixel/rating")), + { + {x = 0, y = 0, width = 51, height = 20, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Sick + {x = 52, y = 0, width = 39, height = 16, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Good + {x = 92, y = 0, width = 28, height = 19, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Bad + {x = 121, y = 0, width = 35, height = 20, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Shit + }, + { + ["sick"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, + ["good"] = {start = 2, stop = 2, speed = 0, offsetX = 0, offsetY = 0}, + ["bad"] = {start = 3, stop = 3, speed = 0, offsetX = 0, offsetY = 0}, + ["shit"] = {start = 4, stop = 4, speed = 0, offsetX = 0, offsetY = 0} + }, + "sick", + false, + { + floored = true + } +) diff --git a/src/love/sprites/pixel/right-arrow.lua b/src/love/sprites/pixel/right-arrow.lua index b0f8518b..0cfec159 100644 --- a/src/love/sprites/pixel/right-arrow.lua +++ b/src/love/sprites/pixel/right-arrow.lua @@ -17,16 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( images["notes"], { - {x = 55, y = 1, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Right Arrow - {x = 55, y = 19, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Right Arrow On - {x = 55, y = 37, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Right Arrow Press - {x = 55, y = 55, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Right Arrow Confirm 1 - {x = 55, y = 73, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Right Arrow Confirm 2 - {x = 26, y = 90, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Right Hold - {x = 26, y = 97, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Right End + {x = 54, y = 0, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Right Arrow + {x = 54, y = 18, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Right Arrow On + {x = 54, y = 36, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Right Arrow Press + {x = 54, y = 54, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Right Arrow Confirm 1 + {x = 54, y = 72, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Right Arrow Confirm 2 + {x = 24, y = 89, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Right Hold + {x = 24, y = 97, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Right End }, { ["off"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, @@ -37,5 +37,8 @@ return graphics.newPixelSprite( ["end"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0} }, "off", - false + false, + { + floored = true + } ) diff --git a/src/love/sprites/pixel/up-arrow.lua b/src/love/sprites/pixel/up-arrow.lua index 7bbb6984..aa331106 100644 --- a/src/love/sprites/pixel/up-arrow.lua +++ b/src/love/sprites/pixel/up-arrow.lua @@ -17,16 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( images["notes"], { - {x = 37, y = 1, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Up Arrow - {x = 37, y = 19, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Up Arrow On - {x = 37, y = 37, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Up Arrow Press - {x = 37, y = 55, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Up Arrow Confirm 1 - {x = 37, y = 73, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Up Arrow Confirm 2 - {x = 17, y = 90, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Up Hold - {x = 17, y = 97, width = 7, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Up End + {x = 36, y = 0, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Up Arrow + {x = 36, y = 18, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: Up Arrow On + {x = 36, y = 36, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: Up Arrow Press + {x = 36, y = 54, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: Up Arrow Confirm 1 + {x = 36, y = 72, width = 17, height = 17, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: Up Arrow Confirm 2 + {x = 16, y = 89, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: Up Hold + {x = 16, y = 97, width = 7, height = 6, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 7: Up End }, { ["off"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, @@ -37,5 +37,8 @@ return graphics.newPixelSprite( ["end"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0} }, "off", - false + false, + { + floored = true + } ) diff --git a/src/love/sprites/week4/boyfriend.lua b/src/love/sprites/week4/boyfriend.lua index ac2a5cfe..df82355d 100644 --- a/src/love/sprites/week4/boyfriend.lua +++ b/src/love/sprites/week4/boyfriend.lua @@ -304,5 +304,5 @@ return graphics.newSprite( ["idle"] = {start = 257, stop = 270, speed = 24, offsetX = 0, offsetY = 0} }, "idle", - true + false ) diff --git a/src/love/sprites/week4/girlfriend.lua b/src/love/sprites/week4/girlfriend.lua index 7119d302..8da83b9b 100644 --- a/src/love/sprites/week4/girlfriend.lua +++ b/src/love/sprites/week4/girlfriend.lua @@ -57,5 +57,5 @@ return graphics.newSprite( ["sad"] = {start = 1, stop = 30, speed = 24, offsetX = 0, offsetY = 0} -- Temporary workaround }, "idle", - true + false ) diff --git a/src/love/sprites/week5/boyfriend.lua b/src/love/sprites/week5/boyfriend.lua index f85747ff..f9e8a494 100644 --- a/src/love/sprites/week5/boyfriend.lua +++ b/src/love/sprites/week5/boyfriend.lua @@ -330,5 +330,5 @@ return graphics.newSprite( ["idle"] = {start = 282, stop = 295, speed = 24, offsetX = 0, offsetY = 0} }, "idle", - true + false ) diff --git a/src/love/sprites/week6/evil-school.lua b/src/love/sprites/week6/evil-school.lua new file mode 100644 index 00000000..4a24abd0 --- /dev/null +++ b/src/love/sprites/week6/evil-school.lua @@ -0,0 +1,70 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("week6/evil-school")), + -- Automatically generated from animatedEvilSchool.xml + { + {x = 0, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: background 2 instance 10000 + {x = 523, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: background 2 instance 10001 + {x = 1046, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: background 2 instance 10002 + {x = 1569, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: background 2 instance 10003 + {x = 2092, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: background 2 instance 10004 + {x = 2615, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: background 2 instance 10005 + {x = 3138, y = 0, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: background 2 instance 10006 + {x = 0, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: background 2 instance 10007 + {x = 523, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: background 2 instance 10008 + {x = 1046, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: background 2 instance 10009 + {x = 1569, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: background 2 instance 10010 + {x = 2092, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: background 2 instance 10011 + {x = 2615, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: background 2 instance 10012 + {x = 3138, y = 522, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: background 2 instance 10013 + {x = 0, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: background 2 instance 10014 + {x = 523, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: background 2 instance 10015 + {x = 1046, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: background 2 instance 10016 + {x = 1569, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: background 2 instance 10017 + {x = 2092, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: background 2 instance 10018 + {x = 2615, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 20: background 2 instance 10019 + {x = 3138, y = 1044, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 21: background 2 instance 10020 + {x = 0, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 22: background 2 instance 10021 + {x = 523, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 23: background 2 instance 10022 + {x = 1046, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 24: background 2 instance 10023 + {x = 1569, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 25: background 2 instance 10024 + {x = 2092, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 26: background 2 instance 10025 + {x = 2615, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 27: background 2 instance 10026 + {x = 3138, y = 1566, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 28: background 2 instance 10027 + {x = 0, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 29: background 2 instance 10028 + {x = 523, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 30: background 2 instance 10029 + {x = 1046, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 31: background 2 instance 10030 + {x = 1569, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 32: background 2 instance 10031 + {x = 2092, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 33: background 2 instance 10032 + {x = 2615, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 34: background 2 instance 10033 + {x = 3138, y = 2088, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 35: background 2 instance 10034 + {x = 0, y = 2610, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 36: background 2 instance 10035 + {x = 523, y = 2610, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 37: background 2 instance 10036 + {x = 1046, y = 2610, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 38: background 2 instance 10037 + {x = 1569, y = 2610, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 39: background 2 instance 10038 + {x = 2092, y = 2610, width = 513, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 40: background 2 instance 10039 + }, + { + ["anim"] = {start = 1, stop = 40, speed = 24, offsetX = 0, offsetY = 0} + }, + "anim", + true +) diff --git a/src/love/sprites/week6/freaks.lua b/src/love/sprites/week6/freaks.lua new file mode 100644 index 00000000..e0ca8fb4 --- /dev/null +++ b/src/love/sprites/week6/freaks.lua @@ -0,0 +1,92 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("week6/freaks")), + + -- Automatically generated from bgFreaks.xml + { + {x = 0, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: BG fangirls dissuaded0000 + {x = 0, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: BG fangirls dissuaded0001 + {x = 461, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: BG fangirls dissuaded0002 + {x = 461, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: BG fangirls dissuaded0003 + {x = 461, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: BG fangirls dissuaded0004 + {x = 461, y = 0, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: BG fangirls dissuaded0005 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: BG fangirls dissuaded0006 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: BG fangirls dissuaded0007 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: BG fangirls dissuaded0008 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: BG fangirls dissuaded0009 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: BG fangirls dissuaded0010 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: BG fangirls dissuaded0011 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: BG fangirls dissuaded0012 + {x = 0, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: BG fangirls dissuaded0013 + {x = 461, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: BG fangirls dissuaded0014 + {x = 461, y = 106, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: BG fangirls dissuaded0015 + {x = 0, y = 212, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: BG fangirls dissuaded0016 + {x = 0, y = 212, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: BG fangirls dissuaded0017 + {x = 461, y = 212, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: BG fangirls dissuaded0018 + {x = 461, y = 212, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 20: BG fangirls dissuaded0019 + {x = 0, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 21: BG fangirls dissuaded0020 + {x = 0, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 22: BG fangirls dissuaded0021 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 23: BG fangirls dissuaded0022 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 24: BG fangirls dissuaded0023 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 25: BG fangirls dissuaded0024 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 26: BG fangirls dissuaded0025 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 27: BG fangirls dissuaded0026 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 28: BG fangirls dissuaded0027 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 29: BG fangirls dissuaded0028 + {x = 461, y = 318, width = 451, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 30: BG fangirls dissuaded0029 + {x = 0, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 31: BG girls group0000 + {x = 0, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 32: BG girls group0001 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 33: BG girls group0002 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 34: BG girls group0003 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 35: BG girls group0004 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 36: BG girls group0005 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 37: BG girls group0006 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 38: BG girls group0007 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 39: BG girls group0008 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 40: BG girls group0009 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 41: BG girls group0010 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 42: BG girls group0011 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 43: BG girls group0012 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 44: BG girls group0013 + {x = 460, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 45: BG girls group0014 + {x = 460, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 46: BG girls group0015 + {x = 0, y = 636, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 47: BG girls group0016 + {x = 0, y = 636, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 48: BG girls group0017 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 49: BG girls group0018 + {x = 0, y = 530, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 50: BG girls group0019 + {x = 460, y = 636, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 51: BG girls group0020 + {x = 460, y = 636, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 52: BG girls group0021 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 53: BG girls group0022 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 54: BG girls group0023 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 55: BG girls group0024 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 56: BG girls group0025 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 57: BG girls group0026 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 58: BG girls group0027 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 59: BG girls group0028 + {x = 460, y = 424, width = 450, height = 96, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 60: BG girls group0029 + }, + { + ["dissuaded"] = {start = 1, stop = 30, speed = 24, offsetX = 0, offsetY = 0}, + ["in love"] = {start = 31, stop = 60, speed = 24, offsetX = 0, offsetY = 0} + }, + "in love", + true +) diff --git a/src/love/sprites/week6/petals.lua b/src/love/sprites/week6/petals.lua new file mode 100644 index 00000000..274d108f --- /dev/null +++ b/src/love/sprites/week6/petals.lua @@ -0,0 +1,86 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("week6/petals")), + -- Automatically generated from petals.xml + { + {x = 0, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: PETALS ALL0000 + {x = 0, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: PETALS ALL0001 + {x = 313, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: PETALS ALL0002 + {x = 313, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: PETALS ALL0003 + {x = 626, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: PETALS ALL0004 + {x = 939, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: PETALS ALL0005 + {x = 1252, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: PETALS ALL0006 + {x = 1252, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: PETALS ALL0007 + {x = 1565, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: PETALS ALL0008 + {x = 0, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: PETALS ALL0009 + {x = 313, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: PETALS ALL0010 + {x = 626, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: PETALS ALL0011 + {x = 939, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: PETALS ALL0012 + {x = 1252, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: PETALS ALL0013 + {x = 1252, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: PETALS ALL0014 + {x = 1565, y = 163, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: PETALS ALL0015 + {x = 0, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: PETALS ALL0016 + {x = 313, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: PETALS ALL0017 + {x = 313, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: PETALS ALL0018 + {x = 626, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 20: PETALS ALL0019 + {x = 939, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 21: PETALS ALL0020 + {x = 1252, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 22: PETALS ALL0021 + {x = 1252, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 23: PETALS ALL0022 + {x = 1565, y = 326, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 24: PETALS ALL0023 + {x = 0, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 25: PETALS ALL0024 + {x = 313, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 26: PETALS ALL0025 + {x = 626, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 27: PETALS ALL0026 + {x = 939, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 28: PETALS ALL0027 + {x = 1252, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 29: PETALS ALL0028 + {x = 1565, y = 489, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 30: PETALS ALL0029 + {x = 0, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 31: PETALS ALL0030 + {x = 313, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 32: PETALS ALL0031 + {x = 626, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 33: PETALS ALL0032 + {x = 939, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 34: PETALS ALL0033 + {x = 1252, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 35: PETALS ALL0034 + {x = 1252, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 36: PETALS ALL0035 + {x = 1565, y = 652, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 37: PETALS ALL0036 + {x = 0, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 38: PETALS ALL0037 + {x = 313, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 39: PETALS ALL0038 + {x = 313, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 40: PETALS ALL0039 + {x = 626, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 41: PETALS ALL0040 + {x = 939, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 42: PETALS ALL0041 + {x = 939, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 43: PETALS ALL0042 + {x = 1252, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 44: PETALS ALL0043 + {x = 1565, y = 815, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 45: PETALS ALL0044 + {x = 0, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 46: PETALS ALL0045 + {x = 313, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 47: PETALS ALL0046 + {x = 626, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 48: PETALS ALL0047 + {x = 939, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 49: PETALS ALL0048 + {x = 1252, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 50: PETALS ALL0049 + {x = 1565, y = 978, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 51: PETALS ALL0050 + {x = 0, y = 1141, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 52: PETALS ALL0051 + {x = 313, y = 1141, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 53: PETALS ALL0052 + {x = 313, y = 1141, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 54: PETALS ALL0053 + {x = 626, y = 1141, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 55: PETALS ALL0054 + {x = 0, y = 0, width = 311, height = 161, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 56: PETALS ALL0055 + }, + { + ["anim"] = {start = 1, stop = 56, speed = 24, offsetX = 0, offsetY = 0} + }, + "anim", + true +) diff --git a/src/love/sprites/week6/senpai-angry.lua b/src/love/sprites/week6/senpai-angry.lua index 674dadfa..7fab81d6 100644 --- a/src/love/sprites/week6/senpai-angry.lua +++ b/src/love/sprites/week6/senpai-angry.lua @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newSprite( -- Angry Senpai looks better as a normal sprite for some reason??? +return graphics.newSprite( love.graphics.newImage(graphics.imagePath("week6/senpai")), { {x = 0, y = 0, width = 125, height = 164, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: Angry Senpai DOWN NOTE instance 10000 @@ -99,5 +99,5 @@ return graphics.newSprite( -- Angry Senpai looks better as a normal sprite for s ["up"] = {start = 57, stop = 70, speed = 24, offsetX = 0, offsetY = 6} }, "idle", - true + false ) diff --git a/src/love/sprites/week6/senpai.lua b/src/love/sprites/week6/senpai.lua index dceb415c..d67e32d0 100644 --- a/src/love/sprites/week6/senpai.lua +++ b/src/love/sprites/week6/senpai.lua @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -return graphics.newPixelSprite( +return graphics.newSprite( love.graphics.newImage(graphics.imagePath("week6/senpai")), -- Automatically generated from senpai.xml { @@ -114,5 +114,5 @@ return graphics.newPixelSprite( ["idle"] = {start = 57, stop = 84, speed = 24, offsetX = 0, offsetY = 0} }, "idle", - true + false ) diff --git a/src/love/sprites/week6/spirit.lua b/src/love/sprites/week6/spirit.lua new file mode 100644 index 00000000..82ecc514 --- /dev/null +++ b/src/love/sprites/week6/spirit.lua @@ -0,0 +1,135 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("week6/spirit")), + -- Automatically generated from spirit.txt + { + {x = 0, y = 1028, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: idle spirit_0 + {x = 0, y = 1157, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: idle spirit_1 + {x = 1542, y = 0, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: idle spirit_2 + {x = 643, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: idle spirit_3 + {x = 387, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: idle spirit_4 + {x = 772, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: idle spirit_5 + {x = 129, y = 1415, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: idle spirit_6 + {x = 258, y = 1286, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: idle spirit_7 + {x = 0, y = 1544, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: idle spirit_8 + {x = 387, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: idle spirit_9 + {x = 129, y = 1028, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: idle spirit_10 + {x = 514, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: idle spirit_11 + {x = 129, y = 1157, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: idle spirit_12 + {x = 258, y = 1028, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: idle spirit_13 + {x = 0, y = 1286, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: idle spirit_14 + {x = 514, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: idle spirit_15 + {x = 643, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: idle spirit_16 + {x = 0, y = 1415, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: idle spirit_17 + {x = 129, y = 1286, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: idle spirit_18 + {x = 258, y = 1157, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 20: idle spirit_19 + {x = 0, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 21: spirit down_0 + {x = 257, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 22: spirit down_1 + {x = 771, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 23: spirit down_2 + {x = 1028, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 24: spirit down_3 + {x = 1285, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 25: spirit down_4 + {x = 1285, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 26: spirit down_5 + {x = 1028, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 27: spirit down_6 + {x = 1285, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 28: spirit down_7 + {x = 0, y = 771, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 29: spirit down_8 + {x = 257, y = 771, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 30: spirit down_9 + {x = 514, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 31: spirit down_10 + {x = 0, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 32: spirit down_11 + {x = 257, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 33: spirit down_12 + {x = 0, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 34: spirit down_13 + {x = 257, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 35: spirit down_14 + {x = 514, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 36: spirit down_15 + {x = 514, y = 514, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 37: spirit down_16 + {x = 771, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 38: spirit down_17 + {x = 771, y = 257, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 39: spirit down_18 + {x = 1028, y = 0, width = 256, height = 256, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 40: spirit down_19 + -- Rearranged left frames because they were out of order + {x = 516, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 41: left_0 + {x = 1542, y = 129, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 42: left_1 + {x = 258, y = 1544, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 43: left_2 + {x = 516, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 44: left_3 + {x = 387, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 45: left_4 + {x = 645, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 46: left_5 + {x = 774, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 47: left_6 + {x = 1542, y = 387, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 48: left_7 + {x = 1030, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 49: left_8 + {x = 1159, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 50: left_9 + {x = 772, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 51: left_10 + {x = 901, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 52: left_11 + {x = 258, y = 1415, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 53: left_12 + {x = 129, y = 1544, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 54: left_13 + {x = 387, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 55: left_14 + {x = 645, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 56: left_15 + {x = 516, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 57: left_16 + {x = 1542, y = 258, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 58: left_17 + {x = 1030, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 59: left_18 + {x = 901, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 60: left_19 + {x = 903, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 61: right_0 + {x = 774, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 62: right_1 + {x = 1032, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 63: right_2 + {x = 1542, y = 645, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 64: right_3 + {x = 1288, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 65: right_4 + {x = 774, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 66: right_5 + {x = 1032, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 67: right_6 + {x = 903, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 68: right_7 + {x = 1161, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 69: right_8 + {x = 645, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 70: right_9 + {x = 516, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 71: right_10 + {x = 387, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 72: right_11 + {x = 645, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 73: right_12 + {x = 1542, y = 516, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 74: right_13 + {x = 1288, y = 771, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 75: right_14 + {x = 1159, y = 900, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 76: right_15 + {x = 645, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 77: right_16 + {x = 516, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 78: right_17 + {x = 774, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 79: right_18 + {x = 903, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 80: right_19 + {x = 1417, y = 774, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 81: up_0 + {x = 903, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 82: up_1 + {x = 1419, y = 1032, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 83: up_2 + {x = 1548, y = 903, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 84: up_3 + {x = 1290, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 85: up_4 + {x = 1161, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 86: up_5 + {x = 1032, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 87: up_6 + {x = 1548, y = 1032, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 88: up_7 + {x = 1419, y = 1161, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 89: up_8 + {x = 1161, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 90: up_9 + {x = 1290, y = 1029, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 91: up_10 + {x = 1161, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 92: up_11 + {x = 774, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 93: up_12 + {x = 1032, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 94: up_13 + {x = 1546, y = 774, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 95: up_14 + {x = 903, y = 1545, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 96: up_15 + {x = 1161, y = 1287, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 97: up_16 + {x = 1032, y = 1416, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 98: up_17 + {x = 1290, y = 1158, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 99: up_18 + {x = 1419, y = 903, width = 128, height = 128, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 100: up_19 + }, + { + ["idle"] = {start = 1, stop = 20, speed = 24, offsetX = 2, offsetY = 0}, + ["down"] = {start = 21, stop = 40, speed = 24, offsetX = 2, offsetY = 0}, + ["left"] = {start = 41, stop = 60, speed = 24, offsetX = 2, offsetY = 0}, + ["right"] = {start = 61, stop = 80, speed = 24, offsetX = 2, offsetY = 0}, + ["up"] = {start = 81, stop = 100, speed = 24, offsetX = 2, offsetY = 0}, + }, + "idle", + false +) diff --git a/src/love/sprites/week6/trees.lua b/src/love/sprites/week6/trees.lua new file mode 100644 index 00000000..7bf07e50 --- /dev/null +++ b/src/love/sprites/week6/trees.lua @@ -0,0 +1,50 @@ +--[[---------------------------------------------------------------------------- +This file is part of Friday Night Funkin' Rewritten + +Copyright (C) 2021 HTV04 + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +------------------------------------------------------------------------------]] + +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("week6/trees")), + -- Automatically generated from weebTrees.txt + { + {x = 0, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 1: trees_0 + {x = 513, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 2: trees_1 + {x = 1539, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 3: trees_2 + {x = 2052, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 4: trees_3 + {x = 2565, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 5: trees_4 + {x = 3078, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 6: trees_5 + {x = 2565, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 7: trees_6 + {x = 2052, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 8: trees_7 + {x = 2565, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 9: trees_8 + {x = 3078, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 10: trees_9 + {x = 1026, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 11: trees_10 + {x = 0, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 12: trees_11 + {x = 513, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 13: trees_12 + {x = 0, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 14: trees_13 + {x = 513, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 15: trees_14 + {x = 1026, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 16: trees_15 + {x = 1026, y = 1026, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 17: trees_16 + {x = 1539, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 18: trees_17 + {x = 1539, y = 513, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- 19: trees_18 + {x = 2052, y = 0, width = 512, height = 512, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0} -- 20: trees_19 + }, + { + ["anim"] = {start = 1, stop = 20, speed = 24, offsetX = 0, offsetY = 0} + }, + "anim", + true +) diff --git a/src/love/weeks-pixel.lua b/src/love/weeks-pixel.lua index 77197c74..659f74f3 100644 --- a/src/love/weeks-pixel.lua +++ b/src/love/weeks-pixel.lua @@ -32,7 +32,7 @@ local inputList = { "gameRight" } ---local ratingTimers = {} +local ratingTimers = {} return { enter = function(self) @@ -40,55 +40,45 @@ return { sounds = { ["miss"] = { - love.audio.newSource("sounds/miss1.ogg", "static"), - love.audio.newSource("sounds/miss2.ogg", "static"), - love.audio.newSource("sounds/miss3.ogg", "static") + love.audio.newSource("sounds/pixel/miss1.ogg", "static"), + love.audio.newSource("sounds/pixel/miss2.ogg", "static"), + love.audio.newSource("sounds/pixel/miss3.ogg", "static") }, - ["death"] = love.audio.newSource("sounds/death.ogg", "static") + ["death"] = love.audio.newSource("sounds/pixel/death.ogg", "static") } images = { ["icons"] = love.graphics.newImage(graphics.imagePath("pixel/icons")), - ["notes"] = love.graphics.newImage(graphics.imagePath("pixel/notes")) - --["numbers"] = love.graphics.newImage(graphics.imagePath("pixel/numbers")) + ["notes"] = love.graphics.newImage(graphics.imagePath("pixel/notes")), + ["numbers"] = love.graphics.newImage(graphics.imagePath("pixel/numbers")) } sprites = { - ["icons"] = love.filesystem.load("sprites/pixel/icons.lua") - --["numbers"] = love.filesystem.load("sprites/pixelnumbers.lua") + ["icons"] = love.filesystem.load("sprites/pixel/icons.lua"), + ["numbers"] = love.filesystem.load("sprites/pixel/numbers.lua") } girlfriend = love.filesystem.load("sprites/pixel/girlfriend.lua")() boyfriend = love.filesystem.load("sprites/pixel/boyfriend.lua")() - --fakeBoyfriend = love.filesystem.load("sprites/pixel/boyfriend-dead.lua")() + fakeBoyfriend = love.filesystem.load("sprites/pixel/boyfriend-dead.lua")() - --[[ - rating = love.filesystem.load("sprites/rating.lua")() - - rating.sizeX, rating.sizeY = 0.75, 0.75 + rating = love.filesystem.load("sprites/pixel/rating.lua")() numbers = {} for i = 1, 3 do numbers[i] = sprites["numbers"]() - - numbers[i].sizeX, numbers[i].sizeY = 0.5, 0.5 end - --]] enemyIcon = sprites["icons"]() boyfriendIcon = sprites["icons"]() if settings.downscroll then - enemyIcon.y = -400 - boyfriendIcon.y = -400 + enemyIcon.y = -55 + boyfriendIcon.y = -55 else - enemyIcon.y = 350 - boyfriendIcon.y = 350 + enemyIcon.y = 45 + boyfriendIcon.y = 45 end boyfriendIcon.sizeX = -1 - - for i = 1, 3 do - sounds["miss"][i]:setVolume(0.25) - end end, load = function(self) @@ -96,14 +86,12 @@ return { cam.x, cam.y = -boyfriend.x + 30, -boyfriend.y + 25 - --[[ rating.x = girlfriend.x for i = 1, 3 do - numbers[i].x = girlfriend.x - 100 + 50 * i + numbers[i].x = girlfriend.x - 20 + 10 * i end - --]] - --ratingVisibility = {0} + ratingVisibility = {0} combo = 0 enemy:animate("idle") @@ -138,14 +126,14 @@ return { } for i = 1, 4 do - enemyArrows[i].x = -60 + 20 * i - boyfriendArrows[i].x = 84 + 20 * i + enemyArrows[i].x = -125 + 20 * i + boyfriendArrows[i].x = 25 + 20 * i if settings.downscroll then - enemyArrows[i].y = 90 - boyfriendArrows[i].y = 90 + enemyArrows[i].y = 55 + boyfriendArrows[i].y = 55 else - enemyArrows[i].y = -90 - boyfriendArrows[i].y = -90 + enemyArrows[i].y = -55 + boyfriendArrows[i].y = -55 end enemyNotes[i] = {} @@ -203,24 +191,28 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = 90 - noteTime * 0.12 * speed + enemyNotes[id][c].y = 55 - noteTime * 0.12 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = 90 - (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y - 11 - enemyNotes[id][c].orientation = math.pi + enemyNotes[id][c].y = 55 - (noteTime + k) * 0.12 * speed - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c].sizeY = -1 + + enemyNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -229,24 +221,28 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = 90 - noteTime * 0.12 * speed + boyfriendNotes[id][c].y = 55 - noteTime * 0.12 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = 90 - (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y - 11 - boyfriendNotes[id][c].orientation = math.pi + boyfriendNotes[id][c].y = 55 - (noteTime + k) * 0.12 * speed - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].sizeY = -1 + + boyfriendNotes[id][c]:animate("end", false) end end else @@ -257,24 +253,28 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = 90 - noteTime * 0.12 * speed + boyfriendNotes[id][c].y = 55 - noteTime * 0.12 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = 90 - (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y - 11 - boyfriendNotes[id][c].orientation = math.pi + boyfriendNotes[id][c].y = 55 - (noteTime + k) * 0.12 * speed - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].sizeY = -1 + + boyfriendNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -283,24 +283,28 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = 90 - noteTime * 0.12 * speed + enemyNotes[id][c].y = 55 - noteTime * 0.12 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = 90 - (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y - 11 - enemyNotes[id][c].orientation = math.pi + enemyNotes[id][c].y = 55 - (noteTime + k) * 0.12 * speed - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c].sizeY = -1 + + enemyNotes[id][c]:animate("end", false) end end end @@ -313,23 +317,26 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = -90 + noteTime * 0.12 * speed + enemyNotes[id][c].y = -55 + noteTime * 0.12 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = -90 + (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y + 10 + enemyNotes[id][c].y = -55 + (noteTime + k) * 0.12 * speed - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -338,23 +345,26 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = -90 + noteTime * 0.12 * speed + boyfriendNotes[id][c].y = -55 + noteTime * 0.12 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = -90 + (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y + 10 + boyfriendNotes[id][c].y = -55 + (noteTime + k) * 0.12 * speed - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c]:animate("end", false) end end else @@ -365,23 +375,26 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = -90 + noteTime * 0.12 * speed + boyfriendNotes[id][c].y = -55 + noteTime * 0.12 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x - boyfriendNotes[id][c].y = -90 + (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y + 10 + boyfriendNotes[id][c].y = -55 + (noteTime + k) * 0.12 * speed - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -390,23 +403,26 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = -90 + noteTime * 0.12 * speed + enemyNotes[id][c].y = -55 + noteTime * 0.12 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then - for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do + local c + + for k = 42 / speed, chart[i].sectionNotes[j].noteLength, 42 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x - enemyNotes[id][c].y = -90 + (noteTime + k) * 0.12 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y + 10 + enemyNotes[id][c].y = -55 + (noteTime + k) * 0.12 * speed - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c]:animate("end", false) end end end @@ -571,7 +587,7 @@ return { end if #enemyNote > 0 then - if (not settings.downscroll and enemyNote[1].y - musicPos <= -90) or (settings.downscroll and enemyNote[1].y - musicPos >= 90) then + if (not settings.downscroll and enemyNote[1].y - musicPos <= -55) or (settings.downscroll and enemyNote[1].y - musicPos >= 55) then voices:setVolume(1) enemyArrow:animate("confirm", false) @@ -587,7 +603,7 @@ return { end if #boyfriendNote > 0 then - if (not settings.downscroll and boyfriendNote[1].y - musicPos < -110) or (settings.downscroll and boyfriendNote[1].y - musicPos > 110) then + if (not settings.downscroll and boyfriendNote[1].y - musicPos < -75) or (settings.downscroll and boyfriendNote[1].y - musicPos > 75) then if inst then voices:setVolume(0) end @@ -611,14 +627,14 @@ return { if #boyfriendNote > 0 then for i = 1, #boyfriendNote do if boyfriendNote[i] and boyfriendNote[i]:getAnimName() == "on" then - if (not settings.downscroll and boyfriendNote[i].y - musicPos <= -66) or (settings.downscroll and boyfriendNote[i].y - musicPos >= 66) then + if (not settings.downscroll and boyfriendNote[i].y - musicPos <= -31) or (settings.downscroll and boyfriendNote[i].y - musicPos >= 31) then local notePos local ratingAnim if settings.downscroll then - notePos = math.abs(90 - (boyfriendNote[i].y - musicPos)) + notePos = math.abs(55 - (boyfriendNote[i].y - musicPos)) else - notePos = math.abs(-90 - (boyfriendNote[i].y - musicPos)) + notePos = math.abs(-55 - (boyfriendNote[i].y - musicPos)) end voices:setVolume(1) @@ -642,7 +658,6 @@ return { end combo = combo + 1 - --[[ rating:animate(ratingAnim, false) numbers[1]:animate(tostring(math.floor(combo / 100 % 10), false)) numbers[2]:animate(tostring(math.floor(combo / 10 % 10), false)) @@ -653,17 +668,16 @@ return { end ratingVisibility[1] = 1 - rating.y = girlfriend.y - 50 + rating.y = girlfriend.y + 5 for i = 1, 3 do - numbers[i].y = girlfriend.y + 50 + numbers[i].y = girlfriend.y + 22 end ratingTimers[1] = Timer.tween(2, ratingVisibility, {0}) - ratingTimers[2] = Timer.tween(2, rating, {y = girlfriend.y - 100}, "out-elastic") - ratingTimers[3] = Timer.tween(2, numbers[1], {y = girlfriend.y + love.math.random(-10, 10)}, "out-elastic") - ratingTimers[4] = Timer.tween(2, numbers[2], {y = girlfriend.y + love.math.random(-10, 10)}, "out-elastic") - ratingTimers[5] = Timer.tween(2, numbers[3], {y = girlfriend.y + love.math.random(-10, 10)}, "out-elastic") - --]] + ratingTimers[2] = Timer.tween(2, rating, {y = girlfriend.y - 10}, "out-elastic") + ratingTimers[3] = Timer.tween(2, numbers[1], {y = girlfriend.y + love.math.random(6, 10)}, "out-elastic") + ratingTimers[4] = Timer.tween(2, numbers[2], {y = girlfriend.y + love.math.random(6, 10)}, "out-elastic") + ratingTimers[5] = Timer.tween(2, numbers[3], {y = girlfriend.y + love.math.random(6, 10)}, "out-elastic") table.remove(boyfriendNote, i) @@ -696,7 +710,7 @@ return { if #boyfriendNote > 0 then if input:down(curInput) then - if ((not settings.downscroll and boyfriendNote[1].y - musicPos <= -90) or (settings.downscroll and boyfriendNote[1].y - musicPos >= 90)) and (boyfriendNote[1]:getAnimName() == "hold" or boyfriendNote[1]:getAnimName() == "end") then + if ((not settings.downscroll and boyfriendNote[1].y - musicPos <= -55) or (settings.downscroll and boyfriendNote[1].y - musicPos >= 55)) and (boyfriendNote[1]:getAnimName() == "hold" or boyfriendNote[1]:getAnimName() == "end") then voices:setVolume(1) table.remove(boyfriendNote, 1) @@ -733,10 +747,10 @@ return { Timer.tween( 2, cam, - {x = -boyfriend.x, y = -boyfriend.y, sizeX = camScale.x, sizeY = camScale.y}, + {x = -fakeBoyfriend.x, y = -fakeBoyfriend.y, sizeX = camScale.x, sizeY = camScale.y}, "out-quad", function() - inst = love.audio.newSource("music/game-over.ogg", "stream") + inst = love.audio.newSource("music/pixel/game-over.ogg", "stream") inst:setLooping(true) inst:play() @@ -745,15 +759,15 @@ return { ) end - enemyIcon.x = 85 - health * 2 - boyfriendIcon.x = 117 - health * 2 + enemyIcon.x = 65 - health * 1.5 + boyfriendIcon.x = 85 - health * 1.5 if musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 / bpm) < 100 then if enemyIconTimer then Timer.cancel(enemyIconTimer) end if boyfriendIconTimer then Timer.cancel(boyfriendIconTimer) end - enemyIconTimer = Timer.tween((60 / bpm) / 16, enemyIcon, {sizeX = 1.75, sizeY = 1.75}, "out-quad", function() enemyIconTimer = Timer.tween((60 / bpm), enemyIcon, {sizeX = 1.5, sizeY = 1.5}, "out-quad") end) - boyfriendIconTimer = Timer.tween((60 / bpm) / 16, boyfriendIcon, {sizeX = -1.75, sizeY = 1.75}, "out-quad", function() boyfriendIconTimer = Timer.tween((60 / bpm), boyfriendIcon, {sizeX = -1.5, sizeY = 1.5}, "out-quad") end) + enemyIconTimer = Timer.tween((60 / bpm) / 16, enemyIcon, {sizeX = 1.25, sizeY = 1.25}, "out-quad", function() enemyIconTimer = Timer.tween((60 / bpm), enemyIcon, {sizeX = 1, sizeY = 1}, "out-quad") end) + boyfriendIconTimer = Timer.tween((60 / bpm) / 16, boyfriendIcon, {sizeX = -1.25, sizeY = 1.25}, "out-quad", function() boyfriendIconTimer = Timer.tween((60 / bpm), boyfriendIcon, {sizeX = -1, sizeY = 1}, "out-quad") end) end if input:pressed("gameBack") then @@ -769,11 +783,11 @@ return { draw = function(self) if gameOver then love.graphics.push() - love.graphics.translate(graphics.getWidth(), graphics.getHeight()) + love.graphics.translate(math.floor(graphics.getWidth() / 2), math.floor(graphics.getHeight() / 2)) love.graphics.push() love.graphics.scale(cam.sizeX, cam.sizeY) - love.graphics.translate(cam.x, cam.y) + love.graphics.translate(math.floor(cam.x), math.floor(cam.y)) fakeBoyfriend:draw() love.graphics.pop() @@ -783,7 +797,11 @@ return { drawRating = function(self, multiplier) love.graphics.push() - love.graphics.translate(cam.x * multiplier, cam.y * multiplier) + if multiplier then + love.graphics.translate(cam.x * multiplier, cam.y * multiplier) + else + love.graphics.translate(cam.x, cam.y) + end graphics.setColor(1, 1, 1, ratingVisibility[1]) rating:draw() @@ -826,15 +844,15 @@ return { if settings.downscroll then if animName == "hold" or animName == "end" then - graphics.setColor(1, 1, 1, math.min(0.5, (110 - (boyfriendNotes[i][j].y - musicPos)) / 30)) + graphics.setColor(1, 1, 1, math.min(0.5, (75 - (boyfriendNotes[i][j].y - musicPos)) / 30)) else - graphics.setColor(1, 1, 1, math.min(1, (110 - (boyfriendNotes[i][j].y - musicPos)) / 15)) + graphics.setColor(1, 1, 1, math.min(1, (75 - (boyfriendNotes[i][j].y - musicPos)) / 15)) end else if animName == "hold" or animName == "end" then - graphics.setColor(1, 1, 1, math.min(0.5, (110 + (boyfriendNotes[i][j].y - musicPos)) / 30)) + graphics.setColor(1, 1, 1, math.min(0.5, (75 + (boyfriendNotes[i][j].y - musicPos)) / 30)) else - graphics.setColor(1, 1, 1, math.min(1, (110 + (boyfriendNotes[i][j].y - musicPos)) / 15)) + graphics.setColor(1, 1, 1, math.min(1, (75 + (boyfriendNotes[i][j].y - musicPos)) / 15)) end end boyfriendNotes[i][j]:draw() @@ -846,22 +864,22 @@ return { if settings.downscroll then graphics.setColor(1, 0, 0) - love.graphics.rectangle("fill", -100, -90, 200, 25) + love.graphics.rectangle("fill", -75, -55, 150, 5) graphics.setColor(0, 1, 0) - love.graphics.rectangle("fill", 100, -90, -health * 2, 5) + love.graphics.rectangle("fill", 75, -55, math.floor(-health * 1.5), 5) graphics.setColor(0, 0, 0) - love.graphics.setLineWidth(10) - love.graphics.rectangle("line", -100, -90, 200, 5) + love.graphics.setLineWidth(2) + love.graphics.rectangle("line", -75, -55, 150, 5) love.graphics.setLineWidth(1) graphics.setColor(1, 1, 1) else graphics.setColor(1, 0, 0) - love.graphics.rectangle("fill", -100, 70, 200, 25) + love.graphics.rectangle("fill", -75, 45, 150, 5) graphics.setColor(0, 1, 0) - love.graphics.rectangle("fill", 100, 70, -health * 2, 5) + love.graphics.rectangle("fill", 75, 45, math.floor(-health * 1.5), 5) graphics.setColor(0, 0, 0) - love.graphics.setLineWidth(10) - love.graphics.rectangle("line", -100, 70, 200, 5) + love.graphics.setLineWidth(2) + love.graphics.rectangle("line", -75, 45, 150, 5) love.graphics.setLineWidth(1) graphics.setColor(1, 1, 1) end @@ -870,9 +888,9 @@ return { enemyIcon:draw() if settings.downscroll then - love.graphics.print("Score: " .. score, 60, -70) + love.graphics.print("Score: " .. score, 10, -50) else - love.graphics.print("Score: " .. score, 60, 90) + love.graphics.print("Score: " .. score, 10, 50) end love.graphics.pop() end, diff --git a/src/love/weeks.lua b/src/love/weeks.lua index 38d45d31..1c48c511 100644 --- a/src/love/weeks.lua +++ b/src/love/weeks.lua @@ -83,10 +83,6 @@ return { end enemyIcon.sizeX, enemyIcon.sizeY = 1.5, 1.5 boyfriendIcon.sizeX, boyfriendIcon.sizeY = -1.5, 1.5 - - for i = 1, 3 do - sounds["miss"][i]:setVolume(0.25) - end end, load = function(self) @@ -200,23 +196,28 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = 400 - noteTime * 0.6 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = 400 - (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y - 11 - enemyNotes[id][c].orientation = math.pi - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c].offsetY = -10 + enemyNotes[id][c].sizeY = -1 + + enemyNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -226,23 +227,28 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = 400 - noteTime * 0.6 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = 400 - (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y - 11 - boyfriendNotes[id][c].orientation = math.pi - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].offsetY = -10 + boyfriendNotes[id][c].sizeY = -1 + + boyfriendNotes[id][c]:animate("end", false) end end else @@ -254,23 +260,28 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = 400 - noteTime * 0.6 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = 400 - (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y - 11 - boyfriendNotes[id][c].orientation = math.pi - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].offsetY = -10 + boyfriendNotes[id][c].sizeY = -1 + + boyfriendNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -280,23 +291,28 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = 400 - noteTime * 0.6 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = 400 - (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y - 11 - enemyNotes[id][c].orientation = math.pi - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c].offsetY = -10 + enemyNotes[id][c].sizeY = -1 + + enemyNotes[id][c]:animate("end", false) end end end @@ -310,22 +326,27 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = -400 + noteTime * 0.6 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #enemyNotes[id] + 1 table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = -400 + (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y + 10 - enemyNotes[id][c]:animate("end", false) - else - enemyNotes[id][c]:animate("hold", false) - end + enemyNotes[id][c]:animate("hold", false) end + + c = #enemyNotes[id] + + enemyNotes[id][c].offsetY = -10 + + enemyNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -335,22 +356,27 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = -400 + noteTime * 0.6 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = -400 + (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y + 10 - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].offsetY = -10 + + boyfriendNotes[id][c]:animate("end", false) end end else @@ -362,22 +388,27 @@ return { table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = -400 + noteTime * 0.6 * speed + boyfriendNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #boyfriendNotes[id] + 1 table.insert(boyfriendNotes[id], sprite()) boyfriendNotes[id][c].x = x boyfriendNotes[id][c].y = -400 + (noteTime + k) * 0.6 * speed - if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - boyfriendNotes[id][c].y = boyfriendNotes[id][c].y + 10 - boyfriendNotes[id][c]:animate("end", false) - else - boyfriendNotes[id][c]:animate("hold", false) - end + boyfriendNotes[id][c]:animate("hold", false) end + + c = #boyfriendNotes[id] + + boyfriendNotes[id][c].offsetY = -10 + + boyfriendNotes[id][c]:animate("end", false) end else local id = noteType + 1 @@ -387,8 +418,12 @@ return { table.insert(enemyNotes[id], sprite()) enemyNotes[id][c].x = x enemyNotes[id][c].y = -400 + noteTime * 0.6 * speed + enemyNotes[id][c]:animate("on", false) + if chart[i].sectionNotes[j].noteLength > 0 then + local c + for k = 71 / speed, chart[i].sectionNotes[j].noteLength, 71 / speed do local c = #enemyNotes[id] + 1 @@ -396,13 +431,19 @@ return { enemyNotes[id][c].x = x enemyNotes[id][c].y = -400 + (noteTime + k) * 0.6 * speed if k > chart[i].sectionNotes[j].noteLength - 71 / speed then - enemyNotes[id][c].y = enemyNotes[id][c].y + 10 + enemyNotes[id][c].offsetY = -10 enemyNotes[id][c]:animate("end", false) else enemyNotes[id][c]:animate("hold", false) end end + + c = #enemyNotes[id] + + enemyNotes[id][c].offsetY = -10 + + enemyNotes[id][c]:animate("end", false) end end end @@ -729,28 +770,51 @@ return { if fakeBoyfriend then fakeBoyfriend:animate("dies", false) + + Timer.clear() + + Timer.tween( + 2, + cam, + {x = -fakeBoyfriend.x, y = -fakeBoyfriend.y, sizeX = camScale.x, sizeY = camScale.y}, + "out-quad", + function() + inst = love.audio.newSource("music/game-over.ogg", "stream") + inst:setLooping(true) + inst:play() + + if fakeBoyfriend then + fakeBoyfriend:animate("dead", true) + else + boyfriend:animate("dead", true) + end + end + ) else boyfriend:animate("dies", false) - end - Timer.clear() - Timer.tween( - 2, - cam, - {x = -boyfriend.x, y = -boyfriend.y, sizeX = camScale.x, sizeY = camScale.y}, - "out-quad", - function() - inst = love.audio.newSource("music/game-over.ogg", "stream") - inst:setLooping(true) - inst:play() + Timer.clear() - if fakeBoyfriend then - fakeBoyfriend:animate("dead", true) - else - boyfriend:animate("dead", true) + Timer.tween( + 2, + cam, + {x = -boyfriend.x, y = -boyfriend.y, sizeX = camScale.x, sizeY = camScale.y}, + "out-quad", + function() + inst = love.audio.newSource("music/game-over.ogg", "stream") + inst:setLooping(true) + inst:play() + + if fakeBoyfriend then + fakeBoyfriend:animate("dead", true) + else + boyfriend:animate("dead", true) + end end - end - ) + ) + end + + elseif health <= 20 and boyfriendIcon:getAnimName() == "boyfriend" then boyfriendIcon:animate("boyfriend losing", false) end @@ -779,7 +843,7 @@ return { draw = function(self) if gameOver then love.graphics.push() - love.graphics.translate(lovesize.getWidth() / 2, lovesize.getHeight() / 2) + love.graphics.translate(graphics.getWidth() / 2, graphics.getHeight() / 2) love.graphics.push() love.graphics.scale(cam.sizeX, cam.sizeY) @@ -797,7 +861,11 @@ return { drawRating = function(self, multiplier) love.graphics.push() - love.graphics.translate(cam.x * multiplier, cam.y * multiplier) + if multiplier then + love.graphics.translate(cam.x * multiplier, cam.y * multiplier) + else + love.graphics.translate(cam.x, cam.y) + end graphics.setColor(1, 1, 1, ratingVisibility[1]) rating:draw() diff --git a/src/love/weeks/tutorial.lua b/src/love/weeks/tutorial.lua index 630ab363..ad75725d 100644 --- a/src/love/weeks/tutorial.lua +++ b/src/love/weeks/tutorial.lua @@ -17,12 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local difficulty + local stageBack, stageFront, curtains return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) weeks:enter() + difficulty = songAppend + stageBack = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/stage-back"))) stageFront = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/stage-front"))) curtains = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/curtains"))) @@ -46,7 +50,7 @@ return { inst = nil voices = love.audio.newSource("music/tutorial/tutorial.ogg", "stream") - self:initUI(songNum) + self:initUI() weeks:voicesPlay() end, @@ -54,7 +58,7 @@ return { initUI = function(self) weeks:initUI() - weeks:generateNotes(love.filesystem.load("charts/tutorial/tutorial" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/tutorial/tutorial" .. difficulty .. ".lua")()) end, update = function(self, dt) @@ -139,7 +143,7 @@ return { weeks:safeAnimate(boyfriend, "idle", false, 3) end - girlfriend.anim.speed = 14.4 / (60 / bpm) + girlfriend:setAnimSpeed(14.4 / (60 / bpm)) end for i = 1, 3 do diff --git a/src/love/weeks/week1.lua b/src/love/weeks/week1.lua index 51523c0e..ea2e363d 100644 --- a/src/love/weeks/week1.lua +++ b/src/love/weeks/week1.lua @@ -17,12 +17,17 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local song, difficulty + local stageBack, stageFront, curtains return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) weeks:enter() + song = songNum + difficulty = songAppend + stageBack = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/stage-back"))) stageFront = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/stage-front"))) curtains = graphics.newImage(love.graphics.newImage(graphics.imagePath("week1/curtains"))) @@ -44,10 +49,10 @@ return { load = function(self) weeks:load() - if songNum == 3 then + if song == 3 then inst = love.audio.newSource("music/week1/dadbattle-inst.ogg", "stream") voices = love.audio.newSource("music/week1/dadbattle-voices.ogg", "stream") - elseif songNum == 2 then + elseif song == 2 then inst = love.audio.newSource("music/week1/fresh-inst.ogg", "stream") voices = love.audio.newSource("music/week1/fresh-voices.ogg", "stream") else @@ -64,12 +69,12 @@ return { initUI = function(self) weeks:initUI() - if songNum == 3 then - weeks:generateNotes(love.filesystem.load("charts/week1/dadbattle" .. songAppend .. ".lua")()) - elseif songNum == 2 then - weeks:generateNotes(love.filesystem.load("charts/week1/fresh" .. songAppend .. ".lua")()) + if song == 3 then + weeks:generateNotes(love.filesystem.load("charts/week1/dadbattle" .. difficulty .. ".lua")()) + elseif song == 2 then + weeks:generateNotes(love.filesystem.load("charts/week1/fresh" .. difficulty .. ".lua")()) else - weeks:generateNotes(love.filesystem.load("charts/week1/bopeebo" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/week1/bopeebo" .. difficulty .. ".lua")()) end end, @@ -100,7 +105,7 @@ return { weeks:update(dt) - if songNum == 1 and musicThres ~= oldMusicThres and math.fmod(musicTime + 500, 480000 / bpm) < 100 then + if song == 1 and musicThres ~= oldMusicThres and math.fmod(musicTime + 500, 480000 / bpm) < 100 then boyfriend:animate("hey", false) end @@ -115,8 +120,8 @@ return { end if not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 3 then - songNum = songNum + 1 + if storyMode and song < 3 then + song = song + 1 self:load() else diff --git a/src/love/weeks/week2.lua b/src/love/weeks/week2.lua index 8748db95..19d2cf3e 100644 --- a/src/love/weeks/week2.lua +++ b/src/love/weeks/week2.lua @@ -17,12 +17,17 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local song, difficulty + local hauntedHouse return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) weeks:enter() + song = songNum + difficulty = songAppend + cam.sizeX, cam.sizeY = 1.1, 1.1 camScale.x, camScale.y = 1.1, 1.1 @@ -46,7 +51,7 @@ return { load = function(self) weeks:load() - if songNum == 2 then + if song == 2 then inst = love.audio.newSource("music/week2/south-inst.ogg", "stream") voices = love.audio.newSource("music/week2/south-voices.ogg", "stream") else @@ -63,10 +68,10 @@ return { initUI = function(self) weeks:initUI() - if songNum == 2 then - weeks:generateNotes(love.filesystem.load("charts/week2/south" .. songAppend .. ".lua")()) + if song == 2 then + weeks:generateNotes(love.filesystem.load("charts/week2/south" .. difficulty .. ".lua")()) else - weeks:generateNotes(love.filesystem.load("charts/week2/spookeez" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/week2/spookeez" .. difficulty .. ".lua")()) end end, @@ -102,7 +107,7 @@ return { if not hauntedHouse.animated then hauntedHouse:animate("normal", false) end - if songNum == 1 and musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 * (love.math.random(17) + 7) / bpm) < 100 then + if song == 1 and musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 * (love.math.random(17) + 7) / bpm) < 100 then audio.playSound(sounds["thunder"][love.math.random(2)]) hauntedHouse:animate("lightning", false) @@ -111,24 +116,24 @@ return { end if musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 / bpm) < 100 then - if enemy.anim.name == "idle" then - enemy.anim.speed = 14.4 / (120 / bpm) + if enemy:getAnimName() == "idle" then + enemy:setAnimSpeed(14.4 / (120 / bpm)) end end if health >= 80 then - if enemyIcon.anim.name == "skid and pump" then + if enemyIcon:getAnimName() == "skid and pump" then enemyIcon:animate("skid and pump losing", false) end else - if enemyIcon.anim.name == "skid and pump losing" then + if enemyIcon:getAnimName() == "skid and pump losing" then enemyIcon:animate("skid and pump", false) end end if not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 2 then - songNum = songNum + 1 + if storyMode and song < 2 then + song = song + 1 self:load() else diff --git a/src/love/weeks/week3.lua b/src/love/weeks/week3.lua index 8589ec48..03d00e7e 100644 --- a/src/love/weeks/week3.lua +++ b/src/love/weeks/week3.lua @@ -17,13 +17,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local song, difficulty + local sky, city, cityWindows, behindTrain, street local winColors, winColor return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) weeks:enter() + song = songNum + difficulty = songAppend + cam.sizeX, cam.sizeY = 1, 1 camScale.x, camScale.y = 1, 1 @@ -62,10 +67,10 @@ return { load = function(self) weeks:load() - if songNum == 3 then + if song == 3 then inst = love.audio.newSource("music/week3/blammed-inst.ogg", "stream") voices = love.audio.newSource("music/week3/blammed-voices.ogg", "stream") - elseif songNum == 2 then + elseif song == 2 then inst = love.audio.newSource("music/week3/philly-nice-inst.ogg", "stream") voices = love.audio.newSource("music/week3/philly-nice-voices.ogg", "stream") else @@ -82,12 +87,12 @@ return { initUI = function(self) weeks:initUI() - if songNum == 3 then - weeks:generateNotes(love.filesystem.load("charts/week3/blammed" .. songAppend .. ".lua")()) - elseif songNum == 2 then - weeks:generateNotes(love.filesystem.load("charts/week3/philly-nice" .. songAppend .. ".lua")()) + if song == 3 then + weeks:generateNotes(love.filesystem.load("charts/week3/blammed" .. difficulty .. ".lua")()) + elseif song == 2 then + weeks:generateNotes(love.filesystem.load("charts/week3/philly-nice" .. difficulty .. ".lua")()) else - weeks:generateNotes(love.filesystem.load("charts/week3/pico" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/week3/pico" .. difficulty .. ".lua")()) end end, @@ -127,18 +132,18 @@ return { end if health >= 80 then - if enemyIcon.anim.name == "pico" then + if enemyIcon:getAnimName() == "pico" then enemyIcon:animate("pico losing", false) end else - if enemyIcon.anim.name == "pico losing" then + if enemyIcon:getAnimName() == "pico losing" then enemyIcon:animate("pico", false) end end if not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 3 then - songNum = songNum + 1 + if storyMode and song < 3 then + song = song + 1 self:load() else diff --git a/src/love/weeks/week4.lua b/src/love/weeks/week4.lua index b8c3eb5c..f7d0ba52 100644 --- a/src/love/weeks/week4.lua +++ b/src/love/weeks/week4.lua @@ -17,12 +17,14 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] +local song, difficulty + local sunset local bgLimo, limoDancer, limo return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) bpm = 100 enemyFrameTimer = 0 @@ -48,10 +50,11 @@ return { ["numbers"] = love.filesystem.load("sprites/numbers.lua") } - sunset = graphics.newImage(love.graphics.newImage(graphics.imagePath("week4/sunset"))) + song = songNum + difficulty = songAppend + sunset = graphics.newImage(love.graphics.newImage(graphics.imagePath("week4/sunset"))) - fakeBoyfriend = love.filesystem.load("sprites/boyfriend.lua")() -- Used for game over bgLimo = love.filesystem.load("sprites/week4/bg-limo.lua")() limoDancer = love.filesystem.load("sprites/week4/limo-dancer.lua")() girlfriend = love.filesystem.load("sprites/week4/girlfriend.lua")() @@ -59,6 +62,7 @@ return { enemy = love.filesystem.load("sprites/week4/mommy-mearest.lua")() boyfriend = love.filesystem.load("sprites/week4/boyfriend.lua")() rating = love.filesystem.load("sprites/rating.lua")() + fakeBoyfriend = love.filesystem.load("sprites/boyfriend.lua")() -- Used for game over fakeBoyfriend.x, fakeBoyfriend.y = 350, -100 bgLimo.y = 250 @@ -93,20 +97,16 @@ return { enemyIcon:animate("mommy mearest", false) - for i = 1, 3 do - sounds["miss"][i]:setVolume(0.25) - end - self:load() end, load = function(self) weeks:load() - if songNum == 3 then + if song == 3 then inst = love.audio.newSource("music/week4/milf-inst.ogg", "stream") voices = love.audio.newSource("music/week4/milf-voices.ogg", "stream") - elseif songNum == 2 then + elseif song == 2 then inst = love.audio.newSource("music/week4/high-inst.ogg", "stream") voices = love.audio.newSource("music/week4/high-voices.ogg", "stream") else @@ -123,12 +123,12 @@ return { initUI = function(self) weeks:initUI() - if songNum == 3 then - weeks:generateNotes(love.filesystem.load("charts/week4/milf" .. songAppend .. ".lua")()) - elseif songNum == 2 then - weeks:generateNotes(love.filesystem.load("charts/week4/high" .. songAppend .. ".lua")()) + if song == 3 then + weeks:generateNotes(love.filesystem.load("charts/week4/milf" .. difficulty .. ".lua")()) + elseif song == 2 then + weeks:generateNotes(love.filesystem.load("charts/week4/high" .. difficulty .. ".lua")()) else - weeks:generateNotes(love.filesystem.load("charts/week4/satin-panties" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/week4/satin-panties" .. difficulty .. ".lua")()) end end, @@ -160,7 +160,7 @@ return { weeks:update(dt) -- Hardcoded M.I.L.F camera scaling - if songNum == 3 and musicTime > 56000 and musicTime < 67000 and musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 / bpm) < 100 then + if song == 3 and musicTime > 56000 and musicTime < 67000 and musicThres ~= oldMusicThres and math.fmod(musicTime, 60000 / bpm) < 100 then if camScaleTimer then Timer.cancel(camScaleTimer) end camScaleTimer = Timer.tween((60 / bpm) / 16, cam, {sizeX = camScale.x * 1.05, sizeY = camScale.y * 1.05}, "out-quad", function() camScaleTimer = Timer.tween((60 / bpm), cam, {sizeX = camScale.x, sizeY = camScale.y}, "out-quad") end) @@ -173,22 +173,22 @@ return { if musicThres ~= oldMusicThres and math.fmod(musicTime, 120000 / bpm) < 100 then limoDancer:animate("anim", false) - limoDancer.anim.speed = 14.4 / (60 / bpm) + limoDancer:setAnimSpeed(14.4 / (60 / bpm)) end if health >= 80 then - if enemyIcon.anim.name == "mommy mearest" then + if enemyIcon:getAnimName() == "mommy mearest" then enemyIcon:animate("mommy mearest losing", false) end else - if enemyIcon.anim.name == "mommy mearest losing" then + if enemyIcon:getAnimName() == "mommy mearest losing" then enemyIcon:animate("mommy mearest", false) end end - if graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 3 then - songNum = songNum + 1 + if not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then + if storyMode and song < 3 then + song = song + 1 self:load() else diff --git a/src/love/weeks/week5.lua b/src/love/weeks/week5.lua index 99b0881d..ced65e6d 100644 --- a/src/love/weeks/week5.lua +++ b/src/love/weeks/week5.lua @@ -17,14 +17,16 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -local walls, escalator, christmasTree, snow -- Images +local song, difficulty -local topBop, bottomBop, santa -- Sprites +local walls, escalator, christmasTree, snow + +local topBop, bottomBop, santa local scaryIntro = false return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) cam.sizeX, cam.sizeY = 0.7, 0.7 camScale.x, camScale.y = 0.7, 0.7 @@ -56,30 +58,38 @@ return { ["numbers"] = love.filesystem.load("sprites/numbers.lua") } - walls = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/walls"))) - escalator = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/escalator"))) - christmasTree = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/christmas-tree"))) - snow = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/snow"))) + song = songNum + difficulty = songAppend + + if song ~= 3 then + walls = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/walls"))) + escalator = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/escalator"))) + christmasTree = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/christmas-tree"))) + snow = graphics.newImage(love.graphics.newImage(graphics.imagePath("week5/snow"))) + + escalator.x = 125 + christmasTree.x = 75 + snow.y = 850 + snow.sizeX, snow.sizeY = 2, 2 + + topBop = love.filesystem.load("sprites/week5/top-bop.lua")() + bottomBop = love.filesystem.load("sprites/week5/bottom-bop.lua")() + santa = love.filesystem.load("sprites/week5/santa.lua")() - escalator.x = 125 - christmasTree.x = 75 - snow.y = 850 - snow.sizeX, snow.sizeY = 2, 2 + topBop.x, topBop.y = 60, -250 + bottomBop.x, bottomBop.y = -75, 375 + santa.x, santa.y = -1350, 410 + end - topBop = love.filesystem.load("sprites/week5/top-bop.lua")() - bottomBop = love.filesystem.load("sprites/week5/bottom-bop.lua")() girlfriend = love.filesystem.load("sprites/week5/girlfriend.lua")() - santa = love.filesystem.load("sprites/week5/santa.lua")() enemy = love.filesystem.load("sprites/week5/dearest-duo.lua")() boyfriend = love.filesystem.load("sprites/week5/boyfriend.lua")() fakeBoyfriend = love.filesystem.load("sprites/boyfriend.lua")() -- Used for game over rating = love.filesystem.load("sprites/rating.lua")() - topBop.x, topBop.y = 60, -250 - bottomBop.x, bottomBop.y = -75, 375 + girlfriend.x, girlfriend.y = -50, 410 - santa.x, santa.y = -1350, 410 enemy.x, enemy.y = -780, 410 boyfriend.x, boyfriend.y = 300, 620 fakeBoyfriend.x, fakeBoyfriend.y = 300, 620 @@ -107,17 +117,13 @@ return { enemyIcon:animate("dearest duo", false) - for i = 1, 3 do - sounds["miss"][i]:setVolume(0.25) - end - self:load() end, load = function(self) weeks:load() - if songNum == 3 then + if song == 3 then camScale.x, camScale.y = 0.9, 0.9 if scaryIntro then @@ -147,7 +153,7 @@ return { inst = love.audio.newSource("music/week5/winter-horrorland-inst.ogg", "stream") voices = love.audio.newSource("music/week5/winter-horrorland-voices.ogg", "stream") - elseif songNum == 2 then + elseif song == 2 then inst = love.audio.newSource("music/week5/eggnog-inst.ogg", "stream") voices = love.audio.newSource("music/week5/eggnog-voices.ogg", "stream") else @@ -180,12 +186,12 @@ return { initUI = function(self) weeks:initUI() - if songNum == 3 then - weeks:generateNotes(love.filesystem.load("charts/week5/winter-horrorland" .. songAppend .. ".lua")()) - elseif songNum == 2 then - weeks:generateNotes(love.filesystem.load("charts/week5/eggnog" .. songAppend .. ".lua")()) + if song == 3 then + weeks:generateNotes(love.filesystem.load("charts/week5/winter-horrorland" .. difficulty .. ".lua")()) + elseif song == 2 then + weeks:generateNotes(love.filesystem.load("charts/week5/eggnog" .. difficulty .. ".lua")()) else - weeks:generateNotes(love.filesystem.load("charts/week5/cocoa" .. songAppend .. ".lua")()) + weeks:generateNotes(love.filesystem.load("charts/week5/cocoa" .. difficulty .. ".lua")()) end end, @@ -217,7 +223,7 @@ return { if not scaryIntro then weeks:update(dt) - if songNum ~= 3 then + if song ~= 3 then topBop:update(dt) bottomBop:update(dt) santa:update(dt) @@ -229,34 +235,34 @@ return { end end - if songNum == 3 then + if song == 3 then if health >= 80 then - if enemyIcon.anim.name == "monster" then + if enemyIcon:getAnimName() == "monster" then enemyIcon:animate("monster losing", false) end else - if enemyIcon.anim.name == "monster losing" then + if enemyIcon:getAnimName() == "monster losing" then enemyIcon:animate("monster", false) end end else if health >= 80 then - if enemyIcon.anim.name == "dearest duo" then + if enemyIcon:getAnimName() == "dearest duo" then enemyIcon:animate("dearest duo losing", false) end else - if enemyIcon.anim.name == "dearest duo losing" then + if enemyIcon:getAnimName() == "dearest duo losing" then enemyIcon:animate("dearest duo", false) end end end if not scaryIntro and not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 3 then - songNum = songNum + 1 + if storyMode and song < 3 then + song = song + 1 -- Winter Horrorland setup - if songNum == 3 then + if song == 3 then scaryIntro = true audio.playSound(sounds["lights off"]) @@ -290,7 +296,7 @@ return { love.graphics.translate(cam.x * 0.5, cam.y * 0.5) walls:draw() - if songNum ~= 3 then + if song ~= 3 then topBop:draw() escalator:draw() end @@ -299,7 +305,7 @@ return { love.graphics.push() love.graphics.translate(cam.x * 0.9, cam.y * 0.9) - if songNum ~= 3 then + if song ~= 3 then bottomBop:draw() end @@ -310,7 +316,7 @@ return { love.graphics.push() love.graphics.translate(cam.x, cam.y) - if songNum ~= 3 then + if song ~= 3 then santa:draw() end enemy:draw() @@ -328,7 +334,7 @@ return { love.graphics.scale(0.7, 0.7) for i = 1, 4 do - if enemyArrows[i].anim.name == "off" then + if enemyArrows[i]:getAnimName() == "off" then graphics.setColor(0.6, 0.6, 0.6) end enemyArrows[i]:draw() @@ -340,7 +346,7 @@ return { for j = #enemyNotes[i], 1, -1 do if (not settings.downscroll and enemyNotes[i][j].y - musicPos <= 560) or (settings.downscroll and enemyNotes[i][j].y - musicPos >= -560) then - local animName = enemyNotes[i][j].anim.name + local animName = enemyNotes[i][j]:getAnimName() if animName == "hold" or animName == "end" then graphics.setColor(1, 1, 1, 0.5) @@ -351,7 +357,7 @@ return { end for j = #boyfriendNotes[i], 1, -1 do if (not settings.downscroll and boyfriendNotes[i][j].y - musicPos <= 560) or (settings.downscroll and boyfriendNotes[i][j].y - musicPos >= -560) then - local animName = boyfriendNotes[i][j].anim.name + local animName = boyfriendNotes[i][j]:getAnimName() if settings.downscroll then if animName == "hold" or animName == "end" then diff --git a/src/love/weeks/week6.lua b/src/love/weeks/week6.lua index 62075fa4..d9998da4 100644 --- a/src/love/weeks/week6.lua +++ b/src/love/weeks/week6.lua @@ -17,30 +17,47 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ------------------------------------------------------------------------------]] -local canvas +local canvas, font -local sky, school, street +local song, difficulty + +local sky, school, street, treesBack + +local petals, trees, freaks return { - enter = function(self) + enter = function(self, previous, songNum, songAppend) love.graphics.setDefaultFilter("nearest") status.setNoResize(true) canvas = love.graphics.newCanvas(256, 144) - canvas:setFilter("nearest") + font = love.graphics.newFont("fonts/pixel_small.fnt") weeksPixel:enter() + song = songNum + difficulty = songAppend + cam.sizeX, cam.sizeY = 1, 1 camScale.x, camScale.y = 1, 1 - sky = graphics.newPixelImage(love.graphics.newImage(graphics.imagePath("week6/sky"))) - school = graphics.newPixelImage(love.graphics.newImage(graphics.imagePath("week6/school"))) - street = graphics.newPixelImage(love.graphics.newImage(graphics.imagePath("week6/street"))) + if song ~= 3 then + sky = graphics.newImage(love.graphics.newImage(graphics.imagePath("week6/sky"))) + school = graphics.newImage(love.graphics.newImage(graphics.imagePath("week6/school"))) + street = graphics.newImage(love.graphics.newImage(graphics.imagePath("week6/street"))) + treesBack = graphics.newImage(love.graphics.newImage(graphics.imagePath("week6/trees-back"))) + + trees = love.filesystem.load("sprites/week6/trees.lua")() + petals = love.filesystem.load("sprites/week6/petals.lua")() + freaks = love.filesystem.load("sprites/week6/freaks.lua")() + + sky.y = 1 + school.y = 1 + end boyfriend.x, boyfriend.y = 50, 30 - --fakeBoyfriend.x, fakeBoyfriend.y = 50, 30 + fakeBoyfriend.x, fakeBoyfriend.y = 50, 30 enemyIcon:animate("senpai", false) @@ -48,18 +65,26 @@ return { end, load = function(self) - if songNum == 2 then + + if song == 3 then + school = love.filesystem.load("sprites/week6/evil-school.lua")() + enemy = love.filesystem.load("sprites/week6/spirit.lua")() + + enemyIcon:animate("spirit", false) + elseif song == 2 then enemy = love.filesystem.load("sprites/week6/senpai-angry.lua")() + + freaks:animate("dissuaded", true) else enemy = love.filesystem.load("sprites/week6/senpai.lua")() end weeksPixel:load() - if songNum == 3 then + if song == 3 then inst = love.audio.newSource("music/week6/thorns-inst.ogg", "stream") voices = love.audio.newSource("music/week6/thorns-voices.ogg", "stream") - elseif songNum == 2 then + elseif song == 2 then inst = love.audio.newSource("music/week6/roses-inst.ogg", "stream") voices = love.audio.newSource("music/week6/roses-voices.ogg", "stream") else @@ -77,28 +102,28 @@ return { initUI = function(self) weeksPixel:initUI() - if songNum == 3 then - weeksPixel:generateNotes(love.filesystem.load("charts/week6/thorns" .. songAppend .. ".lua")()) - elseif songNum == 2 then - weeksPixel:generateNotes(love.filesystem.load("charts/week6/roses" .. songAppend .. ".lua")()) + if song == 3 then + weeksPixel:generateNotes(love.filesystem.load("charts/week6/thorns" .. difficulty .. ".lua")()) + elseif song == 2 then + weeksPixel:generateNotes(love.filesystem.load("charts/week6/roses" .. difficulty .. ".lua")()) else - weeksPixel:generateNotes(love.filesystem.load("charts/week6/senpai" .. songAppend .. ".lua")()) + weeksPixel:generateNotes(love.filesystem.load("charts/week6/senpai" .. difficulty .. ".lua")()) end end, update = function(self, dt) - graphics.screenBase(128, 72) + graphics.screenBase(256, 144) if gameOver then if not graphics.isFading() then if input:pressed("confirm") then inst:stop() - inst = love.audio.newSource("music/game-over-end.ogg", "stream") + inst = love.audio.newSource("music/pixel/game-over-end.ogg", "stream") inst:play() Timer.clear() - cam.x, cam.y = -boyfriend.x, -boyfriend.y + cam.x, cam.y = -fakeBoyfriend.x, -fakeBoyfriend.y fakeBoyfriend:animate("dead confirm", false) @@ -108,16 +133,24 @@ return { end end - boyfriend:update(dt) + fakeBoyfriend:update(dt) return end weeksPixel:update(dt) + if song == 3 then + school:update(dt) + else + trees:update(dt) + petals:update(dt) + freaks:update(dt) + end + if not graphics.isFading() and not inst:isPlaying() and not voices:isPlaying() then - if storyMode and songNum < 3 then - songNum = songNum + 1 + if storyMode and song < 3 then + song = song + 1 self:load() else @@ -131,7 +164,8 @@ return { draw = function(self) local canvasScale - graphics.screenBase(128, 72) + love.graphics.setFont(font) + graphics.screenBase(256, 144) love.graphics.setCanvas(canvas) love.graphics.clear() @@ -139,6 +173,12 @@ return { if gameOver then love.graphics.setCanvas() + graphics.screenBase(love.graphics.getWidth(), love.graphics.getHeight()) + + canvasScale = math.min(math.floor(graphics.getWidth() / 256), math.floor(graphics.getHeight() / 144)) + if canvasScale < 1 then canvasScale = math.min(graphics.getWidth() / 256, graphics.getHeight() / 144) end + + love.graphics.draw(canvas, graphics.getWidth() / 2, graphics.getHeight() / 2, nil, canvasScale, canvasScale, 128, 72) return end @@ -148,35 +188,46 @@ return { love.graphics.scale(cam.sizeX, cam.sizeY) love.graphics.push() - love.graphics.translate(cam.x * 0.9, cam.y * 0.9) + love.graphics.translate(math.floor(cam.x * 0.9), math.floor(cam.y * 0.9)) + + if song ~= 3 then + sky:draw() + end - sky:draw() school:draw() love.graphics.pop() love.graphics.push() - love.graphics.translate(cam.x, cam.y) + love.graphics.translate(math.floor(cam.x), math.floor(cam.y)) + + if song ~= 3 then + street:draw() + treesBack:draw() - street:draw() + trees:draw() + petals:draw() + freaks:draw() + end girlfriend:draw() enemy:draw() boyfriend:draw() love.graphics.pop() - --weeksPixel:drawRating(0.9) + weeksPixel:drawRating() love.graphics.pop() weeksPixel:drawUI() love.graphics.setCanvas() graphics.screenBase(love.graphics.getWidth(), love.graphics.getHeight()) - canvasScale = math.min(math.floor(graphics.getWidth() / 256), math.floor(graphics.getHeight() / 128)) - if canvasScale < 1 then canvasScale = math.min(graphics.getWidth() / 256, graphics.getHeight() / 128) end + canvasScale = math.min(math.floor(graphics.getWidth() / 256), math.floor(graphics.getHeight() / 144)) + if canvasScale < 1 then canvasScale = math.min(graphics.getWidth() / 256, graphics.getHeight() / 144) end love.graphics.draw(canvas, graphics.getWidth() / 2, graphics.getHeight() / 2, nil, canvasScale, canvasScale, 128, 72) end, leave = function(self) canvas = nil + font = nil sky = nil school = nil diff --git a/tools/funkin-xna/funkin-xna.py b/tools/funkin-xna/funkin-xna.py new file mode 100755 index 00000000..6204fd07 --- /dev/null +++ b/tools/funkin-xna/funkin-xna.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +# -------------------------------------------------------------------------------- +# Friday Night Funkin' Rewritten Legacy XNA Conversion Helper v1.0 +# +# Copyright (C) 2021 HTV04 +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# -------------------------------------------------------------------------------- + +import re +import os +import sys + +txtname = os.path.split(sys.argv[1])[1] +with open(sys.argv[1], "r") as f: + txtlines = f.readlines() + +lua = ('\t-- Automatically generated from ' + txtname + '\n' + '\t{\n') +c = 0 +for txtline in txtlines: + c += 1 + parsedline = re.match("(.+) = (\d+) (\d+) (\d+) (\d+)", txtline) + + name = parsedline.group(1) + x = parsedline.group(2) + y = parsedline.group(3) + width = parsedline.group(4) + height = parsedline.group(5) + + lua += '\t\t{x = ' + x + ', y = ' + y + ', width = ' + width + ', height = ' + height + ', offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0}, -- ' + str(c) + ': ' + name + '\n' + +lua = lua[:len(lua) - (len(str(c)) + len(name) + 9)] + '} -- ' + str(c) + ': ' + name + '\n' +lua += '\t},\n' + +with open('output.txt', 'w') as f: + f.write(lua)