diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..b11b5f20 Binary files /dev/null and b/.DS_Store differ diff --git a/GARBAGE.txt b/GARBAGE.txt deleted file mode 100644 index 5037e42c..00000000 --- a/GARBAGE.txt +++ /dev/null @@ -1,48 +0,0 @@ -Garbage works more or less like this. - -When a player makes a combo or chain, garbage is sent to the opponent. -Garbage blocks will be named Kb for a 1xK rod, or KRb for a block of K rows. -Rb rods made of metal are denoted M. - -The amount of garbage is as follows: - -4-combo: 3b -5-combo: 4b -6-combo: 5b -7-combo: Rb -8-combo: 3b + 4b -9-combo: 2 * 4b -10-combo: 2 * 5b -11-combo: 5b + Rb -12-combo: 2 * Rb -13-combo: 3 * Rb -14-to-19-combo: 4 * Rb -20-to-24-combo: 6 * Rb -K-chain: (K-1)Rb -K metal blocks in combo: (K-2)M in addition to normal combo garbage - -For the purposes of this document, assume P1 is dropping garbage on P2. - -The garbage is not dropped instantly once it is awarded. -It is, however, displayed above P2's -stack N frames after it is awarded. #TODO: find N. - -First, the garbage will wait for P1's chain to end. - -Then all the garbage that was created during P1's chain will wait until -the most recent combo or chain (in this set of garbage) -was at least M frames ago. #TODO: find M. - -Then, all the garbage will wait until P2's chain to end. - -At this time, after Q frames, the #TODO: find Q. -garbage will fall into P2's stack. - -A few things worth noting about the above process: -- It is possible to skip the second stage altogether if P1's - chain is of any respectable length. -- Multiple chains worth of garbage may accumulate in the third - stage if P1 makes short chains or unchained combos - while P2 is making a long chain. - -To find precise garbage timings I will probably have to use a debugger. diff --git a/README b/README deleted file mode 100644 index 60f98b7e..00000000 --- a/README +++ /dev/null @@ -1,3 +0,0 @@ -1. Install love (http://love2d.org/) -2. cd Panel-Attack - love ./ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..0c50b5ff --- /dev/null +++ b/README.md @@ -0,0 +1,105 @@ +# Panel Attack + +## /ref + +This engine is based off V3PdP engine by Brandon Lockaby - gbrandon at gmail dot com . There is lots of commentary which is worth keeping the codebase around in the repo. + +## How to run the source code + +1. Install love v0.9 (http://love2d.org/) +2. `cd panel-attack` +3. `love ./src` + +## How to run the web-server + +`python script/server.py` + +## Gameplay Mechanics + +### How garbage blocks works + +When a player makes a combo or chain, garbage is sent to the opponent. +Garbage blocks will be named Kb for a 1xK rod, or KRb for a block of K rows. +Rb rods made of metal are denoted M. + +The amount of garbage is as follows: + +4-combo: 3b +5-combo: 4b +6-combo: 5b +7-combo: Rb +8-combo: 3b + 4b +9-combo: 2 * 4b +10-combo: 2 * 5b +11-combo: 5b + Rb +12-combo: 2 * Rb +13-combo: 3 * Rb +14-to-19-combo: 4 * Rb +20-to-24-combo: 6 * Rb +K-chain: (K-1)Rb +K metal blocks in combo: (K-2)M in addition to normal combo garbage + +For the purposes of this document, assume P1 is dropping garbage on P2. + +The garbage is not dropped instantly once it is awarded. +It is, however, displayed above P2's +stack N frames after it is awarded. #TODO: find N. + +First, the garbage will wait for P1's chain to end. + +Then all the garbage that was created during P1's chain will wait until +the most recent combo or chain (in this set of garbage) +was at least M frames ago. #TODO: find M. + +Then, all the garbage will wait until P2's chain to end. + +At this time, after Q frames, the #TODO: find Q. +garbage will fall into P2's stack. + +A few things worth noting about the above process: +- It is possible to skip the second stage altogether if P1's + chain is of any respectable length. +- Multiple chains worth of garbage may accumulate in the third + stage if P1 makes short chains or unchained combos + while P2 is making a long chain. + +To find precise garbage timings I will probably have to use a debugger. + +### Difference from Tetris Attack + +In Tetris Attack, it seems like a panel cannot match in the same frame +that it does some other state transition. This is implemented in panel +attack by performing the matches check before the other state transitions. +The result is very dirty... + +In Tetris Attack, the rising of the stack is not smooth around displacement=0. +This part of the animation takes just as long regardless of speed. +This is most noticeable if you use L or R, the stack will sort of jitter on +its way up. I have no plans to implement this. + +In Tetris Attack, only one pair of panels can be swaping at any time, and +the new swap can only be created in some frames of the old swap. In +panel-attack, swaps cannot occur on consecutive frames, but I think +this is less strict than the rule enforced by Tetris Attack about the +timing of back-to-back swaps. + +In Tetris Attack, you get nothing for chains past 13. I will probably +implement things for chains past 13. + +The procedures for generating initial configurations of panels and clusters +of [!] blocks bear only a superficial resemblance to the ones employed in +Tetris Attack. Many fewer initial configurations are posible in Tetris Attack, +and Tetris Attack's procedure for [!] blocks is based on how many +panels the player clears, while panel-attack's is not. + + + +In Tetris Attack, a stack of garbage that should all begin falling at the same +time will occasionally separate. panel-attack will not implement this bug. + +In Panel de Pon (but not in Tetris Attack), a manual rise that is interrupted +by a match will finish after the match and rise lock end. panel-attack +will not implement this bug. + +In Panel de Pon (but not in Tetris Attack), a 32 combo gives too many points. +panel-attack will not implement this bug. diff --git a/THANKS b/THANKS deleted file mode 100644 index c465696b..00000000 --- a/THANKS +++ /dev/null @@ -1,3 +0,0 @@ -This or some other file should thank the people whose work I depend on: - love devs - love2d.org - Brandon Lockaby, author of the original game engine - gbrandon at gmail dot com diff --git a/build.sh b/build.sh index c2298530..fcef5d84 100755 --- a/build.sh +++ b/build.sh @@ -1,5 +1,5 @@ #!/bin/sh -rm panel-attack.love panel.zip panel.exe +rm ./bin/panel-attack.love ./bin/panel.zip ./bin/panel.exe zip -r panel-attack.love *.lua *.txt README THANKS COPYING server.py build.sh assets/*.png assets/*/*png echo "Build windows exe" cat /Users/sharpobject/repos/sgre/windows/love.exe panel-attack.love > panel.exe diff --git a/conf.lua b/conf.lua deleted file mode 100644 index 5e4e226d..00000000 --- a/conf.lua +++ /dev/null @@ -1,27 +0,0 @@ -function love.conf(t) - t.title = "Panel Attack" - t.author = "sharpobject@gmail.com" - t.url = "https://github.com/sharpobject/panel-attack" - t.window.width = 819 - t.window.height = 612 - t.modules.audio = false - t.modules.mouse = true - t.modules.sound = false - t.modules.physics = false - t.identity = "Panel Attack" - t.version = "0.9.0" - t.release = false - - -- DEFAULTS FROM HERE DOWN - local window = t.window or t.screen - window.vsync = true -- Enable vertical sync (boolean) - window.fullscreen = false -- Enable fullscreen (boolean) - window.fsaa = 0 -- The number of FSAA-buffers (number) - t.console = false -- Attach a console (boolean, Windows only) - t.modules.joystick = true - t.modules.timer = true -- Enable the timer module (boolean) - t.modules.image = true -- Enable the image module (boolean) - t.modules.graphics = true -- Enable the graphics module (boolean) - t.modules.keyboard = true -- Enable the keyboard module (boolean) - t.modules.event = true -end diff --git a/differences.txt b/differences.txt deleted file mode 100644 index 46851709..00000000 --- a/differences.txt +++ /dev/null @@ -1,36 +0,0 @@ -In Tetris Attack, it seems like a panel cannot match in the same frame -that it does some other state transition. This is implemented in panel -attack by performing the matches check before the other state transitions. -The result is very dirty... - -In Tetris Attack, the rising of the stack is not smooth around displacement=0. -This part of the animation takes just as long regardless of speed. -This is most noticeable if you use L or R, the stack will sort of jitter on -its way up. I have no plans to implement this. - -In Tetris Attack, only one pair of panels can be swaping at any time, and -the new swap can only be created in some frames of the old swap. In -panel-attack, swaps cannot occur on consecutive frames, but I think -this is less strict than the rule enforced by Tetris Attack about the -timing of back-to-back swaps. - -In Tetris Attack, you get nothing for chains past 13. I will probably -implement things for chains past 13. - -The procedures for generating initial configurations of panels and clusters -of [!] blocks bear only a superficial resemblance to the ones employed in -Tetris Attack. Many fewer initial configurations are posible in Tetris Attack, -and Tetris Attack's procedure for [!] blocks is based on how many -panels the player clears, while panel-attack's is not. - - - -In Tetris Attack, a stack of garbage that should all begin falling at the same -time will occasionally separate. panel-attack will not implement this bug. - -In Panel de Pon (but not in Tetris Attack), a manual rise that is interrupted -by a match will finish after the match and rise lock end. panel-attack -will not implement this bug. - -In Panel de Pon (but not in Tetris Attack), a 32 combo gives too many points. -panel-attack will not implement this bug. diff --git a/garbage.py b/garbage.py deleted file mode 100644 index 8d4f43dd..00000000 --- a/garbage.py +++ /dev/null @@ -1,15 +0,0 @@ -from PIL import Image -img = Image.open("5x.png") -w,h = img.size -img.crop((0,0,8,3)).save("topleft.png") -img.crop((w-8,0,w,3)).save("topright.png") -img.crop((0,h-3,8,h)).save("botleft.png") -img.crop((w-8,h-3,w,h)).save("botright.png") -img.crop((0,6,8,7)).save("left.png") -img.crop((w-8,6,w,7)).save("right.png") -img.crop((17,0,18,2)).save("top.png") -img.crop((17,h-2,18,h)).save("bot.png") -img.crop((24,16,40,32)).save("filler1.png") -img.crop((8,16,24,32)).save("filler2.png") -img.crop((40,16,56,48)).save("doubleface.png") -img.crop((40,24,56,40)).save("face.png") diff --git a/V3PdP source/Game.vc b/ref/Game.vc similarity index 100% rename from V3PdP source/Game.vc rename to ref/Game.vc diff --git a/V3PdP source/engine before emulation of the crazy bug.vc b/ref/engine before emulation of the crazy bug.vc similarity index 100% rename from V3PdP source/engine before emulation of the crazy bug.vc rename to ref/engine before emulation of the crazy bug.vc diff --git a/V3PdP source/engine.vc b/ref/engine.vc similarity index 100% rename from V3PdP source/engine.vc rename to ref/engine.vc diff --git a/V3PdP source/graphics.vc b/ref/graphics.vc similarity index 100% rename from V3PdP source/graphics.vc rename to ref/graphics.vc diff --git a/V3PdP source/input.vc b/ref/input.vc similarity index 100% rename from V3PdP source/input.vc rename to ref/input.vc diff --git a/V3PdP source/sound.vc b/ref/sound.vc similarity index 100% rename from V3PdP source/sound.vc rename to ref/sound.vc diff --git a/V3PdP source/stage.vc b/ref/stage.vc similarity index 100% rename from V3PdP source/stage.vc rename to ref/stage.vc diff --git a/V3PdP source/stage_Lakitu.vc b/ref/stage_Lakitu.vc similarity index 100% rename from V3PdP source/stage_Lakitu.vc rename to ref/stage_Lakitu.vc diff --git a/V3PdP source/stage_Yoshi.vc b/ref/stage_Yoshi.vc similarity index 100% rename from V3PdP source/stage_Yoshi.vc rename to ref/stage_Yoshi.vc diff --git a/V3PdP source/system.vc b/ref/system.vc similarity index 100% rename from V3PdP source/system.vc rename to ref/system.vc diff --git a/V3PdP source/title.vc b/ref/title.vc similarity index 100% rename from V3PdP source/title.vc rename to ref/title.vc diff --git a/server.py b/script/server.py similarity index 100% rename from server.py rename to script/server.py diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 00000000..5008ddfc Binary files /dev/null and b/src/.DS_Store differ diff --git a/assets/blueend10.png b/src/assets/blueend10.png similarity index 100% rename from assets/blueend10.png rename to src/assets/blueend10.png diff --git a/assets/blueend11.png b/src/assets/blueend11.png similarity index 100% rename from assets/blueend11.png rename to src/assets/blueend11.png diff --git a/assets/blueface1.png b/src/assets/blueface1.png similarity index 100% rename from assets/blueface1.png rename to src/assets/blueface1.png diff --git a/assets/bluemid1.png b/src/assets/bluemid1.png similarity index 100% rename from assets/bluemid1.png rename to src/assets/bluemid1.png diff --git a/assets/bluepop.png b/src/assets/bluepop.png similarity index 100% rename from assets/bluepop.png rename to src/assets/bluepop.png diff --git a/assets/chain00.png b/src/assets/chain00.png similarity index 100% rename from assets/chain00.png rename to src/assets/chain00.png diff --git a/assets/chain02.png b/src/assets/chain02.png similarity index 100% rename from assets/chain02.png rename to src/assets/chain02.png diff --git a/assets/chain03.png b/src/assets/chain03.png similarity index 100% rename from assets/chain03.png rename to src/assets/chain03.png diff --git a/assets/chain04.png b/src/assets/chain04.png similarity index 100% rename from assets/chain04.png rename to src/assets/chain04.png diff --git a/assets/chain05.png b/src/assets/chain05.png similarity index 100% rename from assets/chain05.png rename to src/assets/chain05.png diff --git a/assets/chain06.png b/src/assets/chain06.png similarity index 100% rename from assets/chain06.png rename to src/assets/chain06.png diff --git a/assets/chain07.png b/src/assets/chain07.png similarity index 100% rename from assets/chain07.png rename to src/assets/chain07.png diff --git a/assets/chain08.png b/src/assets/chain08.png similarity index 100% rename from assets/chain08.png rename to src/assets/chain08.png diff --git a/assets/chain09.png b/src/assets/chain09.png similarity index 100% rename from assets/chain09.png rename to src/assets/chain09.png diff --git a/assets/chain10.png b/src/assets/chain10.png similarity index 100% rename from assets/chain10.png rename to src/assets/chain10.png diff --git a/assets/chain11.png b/src/assets/chain11.png similarity index 100% rename from assets/chain11.png rename to src/assets/chain11.png diff --git a/assets/chain12.png b/src/assets/chain12.png similarity index 100% rename from assets/chain12.png rename to src/assets/chain12.png diff --git a/assets/chain13.png b/src/assets/chain13.png similarity index 100% rename from assets/chain13.png rename to src/assets/chain13.png diff --git a/assets/chain14.png b/src/assets/chain14.png similarity index 100% rename from assets/chain14.png rename to src/assets/chain14.png diff --git a/assets/chain15.png b/src/assets/chain15.png similarity index 100% rename from assets/chain15.png rename to src/assets/chain15.png diff --git a/assets/chain16.png b/src/assets/chain16.png similarity index 100% rename from assets/chain16.png rename to src/assets/chain16.png diff --git a/assets/chain17.png b/src/assets/chain17.png similarity index 100% rename from assets/chain17.png rename to src/assets/chain17.png diff --git a/assets/chain18.png b/src/assets/chain18.png similarity index 100% rename from assets/chain18.png rename to src/assets/chain18.png diff --git a/assets/chain19.png b/src/assets/chain19.png similarity index 100% rename from assets/chain19.png rename to src/assets/chain19.png diff --git a/assets/combo04.png b/src/assets/combo04.png similarity index 100% rename from assets/combo04.png rename to src/assets/combo04.png diff --git a/assets/combo05.png b/src/assets/combo05.png similarity index 100% rename from assets/combo05.png rename to src/assets/combo05.png diff --git a/assets/combo06.png b/src/assets/combo06.png similarity index 100% rename from assets/combo06.png rename to src/assets/combo06.png diff --git a/assets/combo07.png b/src/assets/combo07.png similarity index 100% rename from assets/combo07.png rename to src/assets/combo07.png diff --git a/assets/combo08.png b/src/assets/combo08.png similarity index 100% rename from assets/combo08.png rename to src/assets/combo08.png diff --git a/assets/combo09.png b/src/assets/combo09.png similarity index 100% rename from assets/combo09.png rename to src/assets/combo09.png diff --git a/assets/combo10.png b/src/assets/combo10.png similarity index 100% rename from assets/combo10.png rename to src/assets/combo10.png diff --git a/assets/combo11.png b/src/assets/combo11.png similarity index 100% rename from assets/combo11.png rename to src/assets/combo11.png diff --git a/assets/combo12.png b/src/assets/combo12.png similarity index 100% rename from assets/combo12.png rename to src/assets/combo12.png diff --git a/assets/combo13.png b/src/assets/combo13.png similarity index 100% rename from assets/combo13.png rename to src/assets/combo13.png diff --git a/assets/combo14.png b/src/assets/combo14.png similarity index 100% rename from assets/combo14.png rename to src/assets/combo14.png diff --git a/assets/combo15.png b/src/assets/combo15.png similarity index 100% rename from assets/combo15.png rename to src/assets/combo15.png diff --git a/assets/combo16.png b/src/assets/combo16.png similarity index 100% rename from assets/combo16.png rename to src/assets/combo16.png diff --git a/assets/combo17.png b/src/assets/combo17.png similarity index 100% rename from assets/combo17.png rename to src/assets/combo17.png diff --git a/assets/combo18.png b/src/assets/combo18.png similarity index 100% rename from assets/combo18.png rename to src/assets/combo18.png diff --git a/assets/combo19.png b/src/assets/combo19.png similarity index 100% rename from assets/combo19.png rename to src/assets/combo19.png diff --git a/assets/combo20.png b/src/assets/combo20.png similarity index 100% rename from assets/combo20.png rename to src/assets/combo20.png diff --git a/assets/combo21.png b/src/assets/combo21.png similarity index 100% rename from assets/combo21.png rename to src/assets/combo21.png diff --git a/assets/combo22.png b/src/assets/combo22.png similarity index 100% rename from assets/combo22.png rename to src/assets/combo22.png diff --git a/assets/combo23.png b/src/assets/combo23.png similarity index 100% rename from assets/combo23.png rename to src/assets/combo23.png diff --git a/assets/combo24.png b/src/assets/combo24.png similarity index 100% rename from assets/combo24.png rename to src/assets/combo24.png diff --git a/assets/combo25.png b/src/assets/combo25.png similarity index 100% rename from assets/combo25.png rename to src/assets/combo25.png diff --git a/assets/combo26.png b/src/assets/combo26.png similarity index 100% rename from assets/combo26.png rename to src/assets/combo26.png diff --git a/assets/combo27.png b/src/assets/combo27.png similarity index 100% rename from assets/combo27.png rename to src/assets/combo27.png diff --git a/assets/combo28.png b/src/assets/combo28.png similarity index 100% rename from assets/combo28.png rename to src/assets/combo28.png diff --git a/assets/combo29.png b/src/assets/combo29.png similarity index 100% rename from assets/combo29.png rename to src/assets/combo29.png diff --git a/assets/combo30.png b/src/assets/combo30.png similarity index 100% rename from assets/combo30.png rename to src/assets/combo30.png diff --git a/assets/combo31.png b/src/assets/combo31.png similarity index 100% rename from assets/combo31.png rename to src/assets/combo31.png diff --git a/assets/combo32.png b/src/assets/combo32.png similarity index 100% rename from assets/combo32.png rename to src/assets/combo32.png diff --git a/assets/combo33.png b/src/assets/combo33.png similarity index 100% rename from assets/combo33.png rename to src/assets/combo33.png diff --git a/assets/combo34.png b/src/assets/combo34.png similarity index 100% rename from assets/combo34.png rename to src/assets/combo34.png diff --git a/assets/combo35.png b/src/assets/combo35.png similarity index 100% rename from assets/combo35.png rename to src/assets/combo35.png diff --git a/assets/combo36.png b/src/assets/combo36.png similarity index 100% rename from assets/combo36.png rename to src/assets/combo36.png diff --git a/assets/combo37.png b/src/assets/combo37.png similarity index 100% rename from assets/combo37.png rename to src/assets/combo37.png diff --git a/assets/combo38.png b/src/assets/combo38.png similarity index 100% rename from assets/combo38.png rename to src/assets/combo38.png diff --git a/assets/combo39.png b/src/assets/combo39.png similarity index 100% rename from assets/combo39.png rename to src/assets/combo39.png diff --git a/assets/combo40.png b/src/assets/combo40.png similarity index 100% rename from assets/combo40.png rename to src/assets/combo40.png diff --git a/assets/combo41.png b/src/assets/combo41.png similarity index 100% rename from assets/combo41.png rename to src/assets/combo41.png diff --git a/assets/combo42.png b/src/assets/combo42.png similarity index 100% rename from assets/combo42.png rename to src/assets/combo42.png diff --git a/assets/combo43.png b/src/assets/combo43.png similarity index 100% rename from assets/combo43.png rename to src/assets/combo43.png diff --git a/assets/combo44.png b/src/assets/combo44.png similarity index 100% rename from assets/combo44.png rename to src/assets/combo44.png diff --git a/assets/combo45.png b/src/assets/combo45.png similarity index 100% rename from assets/combo45.png rename to src/assets/combo45.png diff --git a/assets/combo46.png b/src/assets/combo46.png similarity index 100% rename from assets/combo46.png rename to src/assets/combo46.png diff --git a/assets/combo47.png b/src/assets/combo47.png similarity index 100% rename from assets/combo47.png rename to src/assets/combo47.png diff --git a/assets/combo48.png b/src/assets/combo48.png similarity index 100% rename from assets/combo48.png rename to src/assets/combo48.png diff --git a/assets/combo49.png b/src/assets/combo49.png similarity index 100% rename from assets/combo49.png rename to src/assets/combo49.png diff --git a/assets/combo50.png b/src/assets/combo50.png similarity index 100% rename from assets/combo50.png rename to src/assets/combo50.png diff --git a/assets/combo51.png b/src/assets/combo51.png similarity index 100% rename from assets/combo51.png rename to src/assets/combo51.png diff --git a/assets/combo52.png b/src/assets/combo52.png similarity index 100% rename from assets/combo52.png rename to src/assets/combo52.png diff --git a/assets/combo53.png b/src/assets/combo53.png similarity index 100% rename from assets/combo53.png rename to src/assets/combo53.png diff --git a/assets/combo54.png b/src/assets/combo54.png similarity index 100% rename from assets/combo54.png rename to src/assets/combo54.png diff --git a/assets/combo55.png b/src/assets/combo55.png similarity index 100% rename from assets/combo55.png rename to src/assets/combo55.png diff --git a/assets/combo56.png b/src/assets/combo56.png similarity index 100% rename from assets/combo56.png rename to src/assets/combo56.png diff --git a/assets/combo57.png b/src/assets/combo57.png similarity index 100% rename from assets/combo57.png rename to src/assets/combo57.png diff --git a/assets/combo58.png b/src/assets/combo58.png similarity index 100% rename from assets/combo58.png rename to src/assets/combo58.png diff --git a/assets/combo59.png b/src/assets/combo59.png similarity index 100% rename from assets/combo59.png rename to src/assets/combo59.png diff --git a/assets/combo60.png b/src/assets/combo60.png similarity index 100% rename from assets/combo60.png rename to src/assets/combo60.png diff --git a/assets/combo61.png b/src/assets/combo61.png similarity index 100% rename from assets/combo61.png rename to src/assets/combo61.png diff --git a/assets/combo62.png b/src/assets/combo62.png similarity index 100% rename from assets/combo62.png rename to src/assets/combo62.png diff --git a/assets/combo63.png b/src/assets/combo63.png similarity index 100% rename from assets/combo63.png rename to src/assets/combo63.png diff --git a/assets/combo64.png b/src/assets/combo64.png similarity index 100% rename from assets/combo64.png rename to src/assets/combo64.png diff --git a/assets/combo65.png b/src/assets/combo65.png similarity index 100% rename from assets/combo65.png rename to src/assets/combo65.png diff --git a/assets/combo66.png b/src/assets/combo66.png similarity index 100% rename from assets/combo66.png rename to src/assets/combo66.png diff --git a/assets/cur0.png b/src/assets/cur0.png similarity index 100% rename from assets/cur0.png rename to src/assets/cur0.png diff --git a/assets/cur1.png b/src/assets/cur1.png similarity index 100% rename from assets/cur1.png rename to src/assets/cur1.png diff --git a/assets/elias/bot.png b/src/assets/elias/bot.png similarity index 100% rename from assets/elias/bot.png rename to src/assets/elias/bot.png diff --git a/assets/elias/botleft.png b/src/assets/elias/botleft.png similarity index 100% rename from assets/elias/botleft.png rename to src/assets/elias/botleft.png diff --git a/assets/elias/botright.png b/src/assets/elias/botright.png similarity index 100% rename from assets/elias/botright.png rename to src/assets/elias/botright.png diff --git a/assets/elias/doubleface.png b/src/assets/elias/doubleface.png similarity index 100% rename from assets/elias/doubleface.png rename to src/assets/elias/doubleface.png diff --git a/assets/elias/face.png b/src/assets/elias/face.png similarity index 100% rename from assets/elias/face.png rename to src/assets/elias/face.png diff --git a/assets/elias/filler1.png b/src/assets/elias/filler1.png similarity index 100% rename from assets/elias/filler1.png rename to src/assets/elias/filler1.png diff --git a/assets/elias/filler2.png b/src/assets/elias/filler2.png similarity index 100% rename from assets/elias/filler2.png rename to src/assets/elias/filler2.png diff --git a/assets/elias/flash.png b/src/assets/elias/flash.png similarity index 100% rename from assets/elias/flash.png rename to src/assets/elias/flash.png diff --git a/assets/elias/left.png b/src/assets/elias/left.png similarity index 100% rename from assets/elias/left.png rename to src/assets/elias/left.png diff --git a/assets/elias/pop.png b/src/assets/elias/pop.png similarity index 100% rename from assets/elias/pop.png rename to src/assets/elias/pop.png diff --git a/assets/elias/portrait.png b/src/assets/elias/portrait.png similarity index 100% rename from assets/elias/portrait.png rename to src/assets/elias/portrait.png diff --git a/assets/elias/right.png b/src/assets/elias/right.png similarity index 100% rename from assets/elias/right.png rename to src/assets/elias/right.png diff --git a/assets/elias/top.png b/src/assets/elias/top.png similarity index 100% rename from assets/elias/top.png rename to src/assets/elias/top.png diff --git a/assets/elias/topleft.png b/src/assets/elias/topleft.png similarity index 100% rename from assets/elias/topleft.png rename to src/assets/elias/topleft.png diff --git a/assets/elias/topright.png b/src/assets/elias/topright.png similarity index 100% rename from assets/elias/topright.png rename to src/assets/elias/topright.png diff --git a/assets/flare/bot.png b/src/assets/flare/bot.png similarity index 100% rename from assets/flare/bot.png rename to src/assets/flare/bot.png diff --git a/assets/flare/botleft.png b/src/assets/flare/botleft.png similarity index 100% rename from assets/flare/botleft.png rename to src/assets/flare/botleft.png diff --git a/assets/flare/botright.png b/src/assets/flare/botright.png similarity index 100% rename from assets/flare/botright.png rename to src/assets/flare/botright.png diff --git a/assets/flare/doubleface.png b/src/assets/flare/doubleface.png similarity index 100% rename from assets/flare/doubleface.png rename to src/assets/flare/doubleface.png diff --git a/assets/flare/face.png b/src/assets/flare/face.png similarity index 100% rename from assets/flare/face.png rename to src/assets/flare/face.png diff --git a/assets/flare/filler1.png b/src/assets/flare/filler1.png similarity index 100% rename from assets/flare/filler1.png rename to src/assets/flare/filler1.png diff --git a/assets/flare/filler2.png b/src/assets/flare/filler2.png similarity index 100% rename from assets/flare/filler2.png rename to src/assets/flare/filler2.png diff --git a/assets/flare/flash.png b/src/assets/flare/flash.png similarity index 100% rename from assets/flare/flash.png rename to src/assets/flare/flash.png diff --git a/assets/flare/left.png b/src/assets/flare/left.png similarity index 100% rename from assets/flare/left.png rename to src/assets/flare/left.png diff --git a/assets/flare/pop.png b/src/assets/flare/pop.png similarity index 100% rename from assets/flare/pop.png rename to src/assets/flare/pop.png diff --git a/assets/flare/portrait.png b/src/assets/flare/portrait.png similarity index 100% rename from assets/flare/portrait.png rename to src/assets/flare/portrait.png diff --git a/assets/flare/right.png b/src/assets/flare/right.png similarity index 100% rename from assets/flare/right.png rename to src/assets/flare/right.png diff --git a/assets/flare/top.png b/src/assets/flare/top.png similarity index 100% rename from assets/flare/top.png rename to src/assets/flare/top.png diff --git a/assets/flare/topleft.png b/src/assets/flare/topleft.png similarity index 100% rename from assets/flare/topleft.png rename to src/assets/flare/topleft.png diff --git a/assets/flare/topright.png b/src/assets/flare/topright.png similarity index 100% rename from assets/flare/topright.png rename to src/assets/flare/topright.png diff --git a/assets/frame.png b/src/assets/frame.png similarity index 100% rename from assets/frame.png rename to src/assets/frame.png diff --git a/assets/garbage.png b/src/assets/garbage.png similarity index 100% rename from assets/garbage.png rename to src/assets/garbage.png diff --git a/assets/garbageflash.png b/src/assets/garbageflash.png similarity index 100% rename from assets/garbageflash.png rename to src/assets/garbageflash.png diff --git a/assets/lip/bot.png b/src/assets/lip/bot.png similarity index 100% rename from assets/lip/bot.png rename to src/assets/lip/bot.png diff --git a/assets/lip/botleft.png b/src/assets/lip/botleft.png similarity index 100% rename from assets/lip/botleft.png rename to src/assets/lip/botleft.png diff --git a/assets/lip/botright.png b/src/assets/lip/botright.png similarity index 100% rename from assets/lip/botright.png rename to src/assets/lip/botright.png diff --git a/assets/lip/doubleface.png b/src/assets/lip/doubleface.png similarity index 100% rename from assets/lip/doubleface.png rename to src/assets/lip/doubleface.png diff --git a/assets/lip/face.png b/src/assets/lip/face.png similarity index 100% rename from assets/lip/face.png rename to src/assets/lip/face.png diff --git a/assets/lip/filler1.png b/src/assets/lip/filler1.png similarity index 100% rename from assets/lip/filler1.png rename to src/assets/lip/filler1.png diff --git a/assets/lip/filler2.png b/src/assets/lip/filler2.png similarity index 100% rename from assets/lip/filler2.png rename to src/assets/lip/filler2.png diff --git a/assets/lip/flash.png b/src/assets/lip/flash.png similarity index 100% rename from assets/lip/flash.png rename to src/assets/lip/flash.png diff --git a/assets/lip/left.png b/src/assets/lip/left.png similarity index 100% rename from assets/lip/left.png rename to src/assets/lip/left.png diff --git a/assets/lip/pop.png b/src/assets/lip/pop.png similarity index 100% rename from assets/lip/pop.png rename to src/assets/lip/pop.png diff --git a/assets/lip/portrait.png b/src/assets/lip/portrait.png similarity index 100% rename from assets/lip/portrait.png rename to src/assets/lip/portrait.png diff --git a/assets/lip/right.png b/src/assets/lip/right.png similarity index 100% rename from assets/lip/right.png rename to src/assets/lip/right.png diff --git a/assets/lip/top.png b/src/assets/lip/top.png similarity index 100% rename from assets/lip/top.png rename to src/assets/lip/top.png diff --git a/assets/lip/topleft.png b/src/assets/lip/topleft.png similarity index 100% rename from assets/lip/topleft.png rename to src/assets/lip/topleft.png diff --git a/assets/lip/topright.png b/src/assets/lip/topright.png similarity index 100% rename from assets/lip/topright.png rename to src/assets/lip/topright.png diff --git a/assets/metalend0.png b/src/assets/metalend0.png similarity index 100% rename from assets/metalend0.png rename to src/assets/metalend0.png diff --git a/assets/metalend1.png b/src/assets/metalend1.png similarity index 100% rename from assets/metalend1.png rename to src/assets/metalend1.png diff --git a/assets/metalmid.png b/src/assets/metalmid.png similarity index 100% rename from assets/metalmid.png rename to src/assets/metalmid.png diff --git a/assets/neris/bot.png b/src/assets/neris/bot.png similarity index 100% rename from assets/neris/bot.png rename to src/assets/neris/bot.png diff --git a/assets/neris/botleft.png b/src/assets/neris/botleft.png similarity index 100% rename from assets/neris/botleft.png rename to src/assets/neris/botleft.png diff --git a/assets/neris/botright.png b/src/assets/neris/botright.png similarity index 100% rename from assets/neris/botright.png rename to src/assets/neris/botright.png diff --git a/assets/neris/doubleface.png b/src/assets/neris/doubleface.png similarity index 100% rename from assets/neris/doubleface.png rename to src/assets/neris/doubleface.png diff --git a/assets/neris/face.png b/src/assets/neris/face.png similarity index 100% rename from assets/neris/face.png rename to src/assets/neris/face.png diff --git a/assets/neris/filler1.png b/src/assets/neris/filler1.png similarity index 100% rename from assets/neris/filler1.png rename to src/assets/neris/filler1.png diff --git a/assets/neris/filler2.png b/src/assets/neris/filler2.png similarity index 100% rename from assets/neris/filler2.png rename to src/assets/neris/filler2.png diff --git a/assets/neris/flash.png b/src/assets/neris/flash.png similarity index 100% rename from assets/neris/flash.png rename to src/assets/neris/flash.png diff --git a/assets/neris/left.png b/src/assets/neris/left.png similarity index 100% rename from assets/neris/left.png rename to src/assets/neris/left.png diff --git a/assets/neris/pop.png b/src/assets/neris/pop.png similarity index 100% rename from assets/neris/pop.png rename to src/assets/neris/pop.png diff --git a/assets/neris/portrait.png b/src/assets/neris/portrait.png similarity index 100% rename from assets/neris/portrait.png rename to src/assets/neris/portrait.png diff --git a/assets/neris/right.png b/src/assets/neris/right.png similarity index 100% rename from assets/neris/right.png rename to src/assets/neris/right.png diff --git a/assets/neris/top.png b/src/assets/neris/top.png similarity index 100% rename from assets/neris/top.png rename to src/assets/neris/top.png diff --git a/assets/neris/topleft.png b/src/assets/neris/topleft.png similarity index 100% rename from assets/neris/topleft.png rename to src/assets/neris/topleft.png diff --git a/assets/neris/topright.png b/src/assets/neris/topright.png similarity index 100% rename from assets/neris/topright.png rename to src/assets/neris/topright.png diff --git a/assets/panel00.png b/src/assets/panel00.png similarity index 100% rename from assets/panel00.png rename to src/assets/panel00.png diff --git a/assets/panel11.png b/src/assets/panel11.png similarity index 100% rename from assets/panel11.png rename to src/assets/panel11.png diff --git a/assets/panel12.png b/src/assets/panel12.png similarity index 100% rename from assets/panel12.png rename to src/assets/panel12.png diff --git a/assets/panel13.png b/src/assets/panel13.png similarity index 100% rename from assets/panel13.png rename to src/assets/panel13.png diff --git a/assets/panel14.png b/src/assets/panel14.png similarity index 100% rename from assets/panel14.png rename to src/assets/panel14.png diff --git a/assets/panel15.png b/src/assets/panel15.png similarity index 100% rename from assets/panel15.png rename to src/assets/panel15.png diff --git a/assets/panel16.png b/src/assets/panel16.png similarity index 100% rename from assets/panel16.png rename to src/assets/panel16.png diff --git a/assets/panel17.png b/src/assets/panel17.png similarity index 100% rename from assets/panel17.png rename to src/assets/panel17.png diff --git a/assets/panel21.png b/src/assets/panel21.png similarity index 100% rename from assets/panel21.png rename to src/assets/panel21.png diff --git a/assets/panel22.png b/src/assets/panel22.png similarity index 100% rename from assets/panel22.png rename to src/assets/panel22.png diff --git a/assets/panel23.png b/src/assets/panel23.png similarity index 100% rename from assets/panel23.png rename to src/assets/panel23.png diff --git a/assets/panel24.png b/src/assets/panel24.png similarity index 100% rename from assets/panel24.png rename to src/assets/panel24.png diff --git a/assets/panel25.png b/src/assets/panel25.png similarity index 100% rename from assets/panel25.png rename to src/assets/panel25.png diff --git a/assets/panel26.png b/src/assets/panel26.png similarity index 100% rename from assets/panel26.png rename to src/assets/panel26.png diff --git a/assets/panel27.png b/src/assets/panel27.png similarity index 100% rename from assets/panel27.png rename to src/assets/panel27.png diff --git a/assets/panel31.png b/src/assets/panel31.png similarity index 100% rename from assets/panel31.png rename to src/assets/panel31.png diff --git a/assets/panel32.png b/src/assets/panel32.png similarity index 100% rename from assets/panel32.png rename to src/assets/panel32.png diff --git a/assets/panel33.png b/src/assets/panel33.png similarity index 100% rename from assets/panel33.png rename to src/assets/panel33.png diff --git a/assets/panel34.png b/src/assets/panel34.png similarity index 100% rename from assets/panel34.png rename to src/assets/panel34.png diff --git a/assets/panel35.png b/src/assets/panel35.png similarity index 100% rename from assets/panel35.png rename to src/assets/panel35.png diff --git a/assets/panel36.png b/src/assets/panel36.png similarity index 100% rename from assets/panel36.png rename to src/assets/panel36.png diff --git a/assets/panel37.png b/src/assets/panel37.png similarity index 100% rename from assets/panel37.png rename to src/assets/panel37.png diff --git a/assets/panel41.png b/src/assets/panel41.png similarity index 100% rename from assets/panel41.png rename to src/assets/panel41.png diff --git a/assets/panel42.png b/src/assets/panel42.png similarity index 100% rename from assets/panel42.png rename to src/assets/panel42.png diff --git a/assets/panel43.png b/src/assets/panel43.png similarity index 100% rename from assets/panel43.png rename to src/assets/panel43.png diff --git a/assets/panel44.png b/src/assets/panel44.png similarity index 100% rename from assets/panel44.png rename to src/assets/panel44.png diff --git a/assets/panel45.png b/src/assets/panel45.png similarity index 100% rename from assets/panel45.png rename to src/assets/panel45.png diff --git a/assets/panel46.png b/src/assets/panel46.png similarity index 100% rename from assets/panel46.png rename to src/assets/panel46.png diff --git a/assets/panel47.png b/src/assets/panel47.png similarity index 100% rename from assets/panel47.png rename to src/assets/panel47.png diff --git a/assets/panel51.png b/src/assets/panel51.png similarity index 100% rename from assets/panel51.png rename to src/assets/panel51.png diff --git a/assets/panel52.png b/src/assets/panel52.png similarity index 100% rename from assets/panel52.png rename to src/assets/panel52.png diff --git a/assets/panel53.png b/src/assets/panel53.png similarity index 100% rename from assets/panel53.png rename to src/assets/panel53.png diff --git a/assets/panel54.png b/src/assets/panel54.png similarity index 100% rename from assets/panel54.png rename to src/assets/panel54.png diff --git a/assets/panel55.png b/src/assets/panel55.png similarity index 100% rename from assets/panel55.png rename to src/assets/panel55.png diff --git a/assets/panel56.png b/src/assets/panel56.png similarity index 100% rename from assets/panel56.png rename to src/assets/panel56.png diff --git a/assets/panel57.png b/src/assets/panel57.png similarity index 100% rename from assets/panel57.png rename to src/assets/panel57.png diff --git a/assets/panel61.png b/src/assets/panel61.png similarity index 100% rename from assets/panel61.png rename to src/assets/panel61.png diff --git a/assets/panel62.png b/src/assets/panel62.png similarity index 100% rename from assets/panel62.png rename to src/assets/panel62.png diff --git a/assets/panel63.png b/src/assets/panel63.png similarity index 100% rename from assets/panel63.png rename to src/assets/panel63.png diff --git a/assets/panel64.png b/src/assets/panel64.png similarity index 100% rename from assets/panel64.png rename to src/assets/panel64.png diff --git a/assets/panel65.png b/src/assets/panel65.png similarity index 100% rename from assets/panel65.png rename to src/assets/panel65.png diff --git a/assets/panel66.png b/src/assets/panel66.png similarity index 100% rename from assets/panel66.png rename to src/assets/panel66.png diff --git a/assets/panel67.png b/src/assets/panel67.png similarity index 100% rename from assets/panel67.png rename to src/assets/panel67.png diff --git a/assets/panel71.png b/src/assets/panel71.png similarity index 100% rename from assets/panel71.png rename to src/assets/panel71.png diff --git a/assets/panel72.png b/src/assets/panel72.png similarity index 100% rename from assets/panel72.png rename to src/assets/panel72.png diff --git a/assets/panel73.png b/src/assets/panel73.png similarity index 100% rename from assets/panel73.png rename to src/assets/panel73.png diff --git a/assets/panel74.png b/src/assets/panel74.png similarity index 100% rename from assets/panel74.png rename to src/assets/panel74.png diff --git a/assets/panel75.png b/src/assets/panel75.png similarity index 100% rename from assets/panel75.png rename to src/assets/panel75.png diff --git a/assets/panel76.png b/src/assets/panel76.png similarity index 100% rename from assets/panel76.png rename to src/assets/panel76.png diff --git a/assets/panel77.png b/src/assets/panel77.png similarity index 100% rename from assets/panel77.png rename to src/assets/panel77.png diff --git a/assets/panel81.png b/src/assets/panel81.png similarity index 100% rename from assets/panel81.png rename to src/assets/panel81.png diff --git a/assets/panel82.png b/src/assets/panel82.png similarity index 100% rename from assets/panel82.png rename to src/assets/panel82.png diff --git a/assets/panel83.png b/src/assets/panel83.png similarity index 100% rename from assets/panel83.png rename to src/assets/panel83.png diff --git a/assets/panel84.png b/src/assets/panel84.png similarity index 100% rename from assets/panel84.png rename to src/assets/panel84.png diff --git a/assets/panel85.png b/src/assets/panel85.png similarity index 100% rename from assets/panel85.png rename to src/assets/panel85.png diff --git a/assets/panel86.png b/src/assets/panel86.png similarity index 100% rename from assets/panel86.png rename to src/assets/panel86.png diff --git a/assets/panel87.png b/src/assets/panel87.png similarity index 100% rename from assets/panel87.png rename to src/assets/panel87.png diff --git a/assets/redend10.png b/src/assets/redend10.png similarity index 100% rename from assets/redend10.png rename to src/assets/redend10.png diff --git a/assets/redend11.png b/src/assets/redend11.png similarity index 100% rename from assets/redend11.png rename to src/assets/redend11.png diff --git a/assets/redface1.png b/src/assets/redface1.png similarity index 100% rename from assets/redface1.png rename to src/assets/redface1.png diff --git a/assets/redmid1.png b/src/assets/redmid1.png similarity index 100% rename from assets/redmid1.png rename to src/assets/redmid1.png diff --git a/assets/redpop.png b/src/assets/redpop.png similarity index 100% rename from assets/redpop.png rename to src/assets/redpop.png diff --git a/assets/ruby/bot.png b/src/assets/ruby/bot.png similarity index 100% rename from assets/ruby/bot.png rename to src/assets/ruby/bot.png diff --git a/assets/ruby/botleft.png b/src/assets/ruby/botleft.png similarity index 100% rename from assets/ruby/botleft.png rename to src/assets/ruby/botleft.png diff --git a/assets/ruby/botright.png b/src/assets/ruby/botright.png similarity index 100% rename from assets/ruby/botright.png rename to src/assets/ruby/botright.png diff --git a/assets/ruby/doubleface.png b/src/assets/ruby/doubleface.png similarity index 100% rename from assets/ruby/doubleface.png rename to src/assets/ruby/doubleface.png diff --git a/assets/ruby/face.png b/src/assets/ruby/face.png similarity index 100% rename from assets/ruby/face.png rename to src/assets/ruby/face.png diff --git a/assets/ruby/filler1.png b/src/assets/ruby/filler1.png similarity index 100% rename from assets/ruby/filler1.png rename to src/assets/ruby/filler1.png diff --git a/assets/ruby/filler2.png b/src/assets/ruby/filler2.png similarity index 100% rename from assets/ruby/filler2.png rename to src/assets/ruby/filler2.png diff --git a/assets/ruby/flash.png b/src/assets/ruby/flash.png similarity index 100% rename from assets/ruby/flash.png rename to src/assets/ruby/flash.png diff --git a/assets/ruby/left.png b/src/assets/ruby/left.png similarity index 100% rename from assets/ruby/left.png rename to src/assets/ruby/left.png diff --git a/assets/ruby/pop.png b/src/assets/ruby/pop.png similarity index 100% rename from assets/ruby/pop.png rename to src/assets/ruby/pop.png diff --git a/assets/ruby/portrait.png b/src/assets/ruby/portrait.png similarity index 100% rename from assets/ruby/portrait.png rename to src/assets/ruby/portrait.png diff --git a/assets/ruby/right.png b/src/assets/ruby/right.png similarity index 100% rename from assets/ruby/right.png rename to src/assets/ruby/right.png diff --git a/assets/ruby/top.png b/src/assets/ruby/top.png similarity index 100% rename from assets/ruby/top.png rename to src/assets/ruby/top.png diff --git a/assets/ruby/topleft.png b/src/assets/ruby/topleft.png similarity index 100% rename from assets/ruby/topleft.png rename to src/assets/ruby/topleft.png diff --git a/assets/ruby/topright.png b/src/assets/ruby/topright.png similarity index 100% rename from assets/ruby/topright.png rename to src/assets/ruby/topright.png diff --git a/assets/seren/bot.png b/src/assets/seren/bot.png similarity index 100% rename from assets/seren/bot.png rename to src/assets/seren/bot.png diff --git a/assets/seren/botleft.png b/src/assets/seren/botleft.png similarity index 100% rename from assets/seren/botleft.png rename to src/assets/seren/botleft.png diff --git a/assets/seren/botright.png b/src/assets/seren/botright.png similarity index 100% rename from assets/seren/botright.png rename to src/assets/seren/botright.png diff --git a/assets/seren/doubleface.png b/src/assets/seren/doubleface.png similarity index 100% rename from assets/seren/doubleface.png rename to src/assets/seren/doubleface.png diff --git a/assets/seren/face.png b/src/assets/seren/face.png similarity index 100% rename from assets/seren/face.png rename to src/assets/seren/face.png diff --git a/assets/seren/filler1.png b/src/assets/seren/filler1.png similarity index 100% rename from assets/seren/filler1.png rename to src/assets/seren/filler1.png diff --git a/assets/seren/filler2.png b/src/assets/seren/filler2.png similarity index 100% rename from assets/seren/filler2.png rename to src/assets/seren/filler2.png diff --git a/assets/seren/flash.png b/src/assets/seren/flash.png similarity index 100% rename from assets/seren/flash.png rename to src/assets/seren/flash.png diff --git a/assets/seren/left.png b/src/assets/seren/left.png similarity index 100% rename from assets/seren/left.png rename to src/assets/seren/left.png diff --git a/assets/seren/pop.png b/src/assets/seren/pop.png similarity index 100% rename from assets/seren/pop.png rename to src/assets/seren/pop.png diff --git a/assets/seren/portrait.png b/src/assets/seren/portrait.png similarity index 100% rename from assets/seren/portrait.png rename to src/assets/seren/portrait.png diff --git a/assets/seren/right.png b/src/assets/seren/right.png similarity index 100% rename from assets/seren/right.png rename to src/assets/seren/right.png diff --git a/assets/seren/top.png b/src/assets/seren/top.png similarity index 100% rename from assets/seren/top.png rename to src/assets/seren/top.png diff --git a/assets/seren/topleft.png b/src/assets/seren/topleft.png similarity index 100% rename from assets/seren/topleft.png rename to src/assets/seren/topleft.png diff --git a/assets/seren/topright.png b/src/assets/seren/topright.png similarity index 100% rename from assets/seren/topright.png rename to src/assets/seren/topright.png diff --git a/assets/sherbet/bot.png b/src/assets/sherbet/bot.png similarity index 100% rename from assets/sherbet/bot.png rename to src/assets/sherbet/bot.png diff --git a/assets/sherbet/botleft.png b/src/assets/sherbet/botleft.png similarity index 100% rename from assets/sherbet/botleft.png rename to src/assets/sherbet/botleft.png diff --git a/assets/sherbet/botright.png b/src/assets/sherbet/botright.png similarity index 100% rename from assets/sherbet/botright.png rename to src/assets/sherbet/botright.png diff --git a/assets/sherbet/doubleface.png b/src/assets/sherbet/doubleface.png similarity index 100% rename from assets/sherbet/doubleface.png rename to src/assets/sherbet/doubleface.png diff --git a/assets/sherbet/face.png b/src/assets/sherbet/face.png similarity index 100% rename from assets/sherbet/face.png rename to src/assets/sherbet/face.png diff --git a/assets/sherbet/filler1.png b/src/assets/sherbet/filler1.png similarity index 100% rename from assets/sherbet/filler1.png rename to src/assets/sherbet/filler1.png diff --git a/assets/sherbet/filler2.png b/src/assets/sherbet/filler2.png similarity index 100% rename from assets/sherbet/filler2.png rename to src/assets/sherbet/filler2.png diff --git a/assets/sherbet/flash.png b/src/assets/sherbet/flash.png similarity index 100% rename from assets/sherbet/flash.png rename to src/assets/sherbet/flash.png diff --git a/assets/sherbet/left.png b/src/assets/sherbet/left.png similarity index 100% rename from assets/sherbet/left.png rename to src/assets/sherbet/left.png diff --git a/assets/sherbet/pop.png b/src/assets/sherbet/pop.png similarity index 100% rename from assets/sherbet/pop.png rename to src/assets/sherbet/pop.png diff --git a/assets/sherbet/portrait.png b/src/assets/sherbet/portrait.png similarity index 100% rename from assets/sherbet/portrait.png rename to src/assets/sherbet/portrait.png diff --git a/assets/sherbet/right.png b/src/assets/sherbet/right.png similarity index 100% rename from assets/sherbet/right.png rename to src/assets/sherbet/right.png diff --git a/assets/sherbet/top.png b/src/assets/sherbet/top.png similarity index 100% rename from assets/sherbet/top.png rename to src/assets/sherbet/top.png diff --git a/assets/sherbet/topleft.png b/src/assets/sherbet/topleft.png similarity index 100% rename from assets/sherbet/topleft.png rename to src/assets/sherbet/topleft.png diff --git a/assets/sherbet/topright.png b/src/assets/sherbet/topright.png similarity index 100% rename from assets/sherbet/topright.png rename to src/assets/sherbet/topright.png diff --git a/assets/thiana/bot.png b/src/assets/thiana/bot.png similarity index 100% rename from assets/thiana/bot.png rename to src/assets/thiana/bot.png diff --git a/assets/thiana/botleft.png b/src/assets/thiana/botleft.png similarity index 100% rename from assets/thiana/botleft.png rename to src/assets/thiana/botleft.png diff --git a/assets/thiana/botright.png b/src/assets/thiana/botright.png similarity index 100% rename from assets/thiana/botright.png rename to src/assets/thiana/botright.png diff --git a/assets/thiana/doubleface.png b/src/assets/thiana/doubleface.png similarity index 100% rename from assets/thiana/doubleface.png rename to src/assets/thiana/doubleface.png diff --git a/assets/thiana/face.png b/src/assets/thiana/face.png similarity index 100% rename from assets/thiana/face.png rename to src/assets/thiana/face.png diff --git a/assets/thiana/filler1.png b/src/assets/thiana/filler1.png similarity index 100% rename from assets/thiana/filler1.png rename to src/assets/thiana/filler1.png diff --git a/assets/thiana/filler2.png b/src/assets/thiana/filler2.png similarity index 100% rename from assets/thiana/filler2.png rename to src/assets/thiana/filler2.png diff --git a/assets/thiana/flash.png b/src/assets/thiana/flash.png similarity index 100% rename from assets/thiana/flash.png rename to src/assets/thiana/flash.png diff --git a/assets/thiana/left.png b/src/assets/thiana/left.png similarity index 100% rename from assets/thiana/left.png rename to src/assets/thiana/left.png diff --git a/assets/thiana/pop.png b/src/assets/thiana/pop.png similarity index 100% rename from assets/thiana/pop.png rename to src/assets/thiana/pop.png diff --git a/assets/thiana/portrait.png b/src/assets/thiana/portrait.png similarity index 100% rename from assets/thiana/portrait.png rename to src/assets/thiana/portrait.png diff --git a/assets/thiana/right.png b/src/assets/thiana/right.png similarity index 100% rename from assets/thiana/right.png rename to src/assets/thiana/right.png diff --git a/assets/thiana/top.png b/src/assets/thiana/top.png similarity index 100% rename from assets/thiana/top.png rename to src/assets/thiana/top.png diff --git a/assets/thiana/topleft.png b/src/assets/thiana/topleft.png similarity index 100% rename from assets/thiana/topleft.png rename to src/assets/thiana/topleft.png diff --git a/assets/thiana/topright.png b/src/assets/thiana/topright.png similarity index 100% rename from assets/thiana/topright.png rename to src/assets/thiana/topright.png diff --git a/assets/wall.png b/src/assets/wall.png similarity index 100% rename from assets/wall.png rename to src/assets/wall.png diff --git a/assets/windy/bot.png b/src/assets/windy/bot.png similarity index 100% rename from assets/windy/bot.png rename to src/assets/windy/bot.png diff --git a/assets/windy/botleft.png b/src/assets/windy/botleft.png similarity index 100% rename from assets/windy/botleft.png rename to src/assets/windy/botleft.png diff --git a/assets/windy/botright.png b/src/assets/windy/botright.png similarity index 100% rename from assets/windy/botright.png rename to src/assets/windy/botright.png diff --git a/assets/windy/doubleface.png b/src/assets/windy/doubleface.png similarity index 100% rename from assets/windy/doubleface.png rename to src/assets/windy/doubleface.png diff --git a/assets/windy/face.png b/src/assets/windy/face.png similarity index 100% rename from assets/windy/face.png rename to src/assets/windy/face.png diff --git a/assets/windy/filler1.png b/src/assets/windy/filler1.png similarity index 100% rename from assets/windy/filler1.png rename to src/assets/windy/filler1.png diff --git a/assets/windy/filler2.png b/src/assets/windy/filler2.png similarity index 100% rename from assets/windy/filler2.png rename to src/assets/windy/filler2.png diff --git a/assets/windy/flash.png b/src/assets/windy/flash.png similarity index 100% rename from assets/windy/flash.png rename to src/assets/windy/flash.png diff --git a/assets/windy/left.png b/src/assets/windy/left.png similarity index 100% rename from assets/windy/left.png rename to src/assets/windy/left.png diff --git a/assets/windy/pop.png b/src/assets/windy/pop.png similarity index 100% rename from assets/windy/pop.png rename to src/assets/windy/pop.png diff --git a/assets/windy/portrait.png b/src/assets/windy/portrait.png similarity index 100% rename from assets/windy/portrait.png rename to src/assets/windy/portrait.png diff --git a/assets/windy/right.png b/src/assets/windy/right.png similarity index 100% rename from assets/windy/right.png rename to src/assets/windy/right.png diff --git a/assets/windy/top.png b/src/assets/windy/top.png similarity index 100% rename from assets/windy/top.png rename to src/assets/windy/top.png diff --git a/assets/windy/topleft.png b/src/assets/windy/topleft.png similarity index 100% rename from assets/windy/topleft.png rename to src/assets/windy/topleft.png diff --git a/assets/windy/topright.png b/src/assets/windy/topright.png similarity index 100% rename from assets/windy/topright.png rename to src/assets/windy/topright.png diff --git a/src/conf.lua b/src/conf.lua new file mode 100644 index 00000000..b6df9023 --- /dev/null +++ b/src/conf.lua @@ -0,0 +1,27 @@ +function love.conf(t) + t.title = "Panel Attack" + t.author = "omen.king@gmail.com" + t.url = "https://github.com/omenking/panel-attack" + t.window.width = 819 + t.window.height = 612 + t.modules.audio = false + t.modules.mouse = true + t.modules.sound = false + t.modules.physics = false + t.identity = "Panel Attack" + t.version = "0.10.2" + t.release = false + + -- DEFAULTS FROM HERE DOWN + local window = t.window or t.screen + window.vsync = true -- Enable vertical sync (boolean) + window.fullscreen = false -- Enable fullscreen (boolean) + window.fsaa = 0 -- The number of FSAA-buffers (number) + t.console = false -- Attach a console (boolean, Windows only) + t.modules.joystick = true + t.modules.timer = true -- Enable the timer module (boolean) + t.modules.image = true -- Enable the image module (boolean) + t.modules.graphics = true -- Enable the graphics module (boolean) + t.modules.keyboard = true -- Enable the keyboard module (boolean) + t.modules.event = true +end diff --git a/globals.lua b/src/data/globals.lua similarity index 100% rename from globals.lua rename to src/data/globals.lua diff --git a/puzzles.lua b/src/data/puzzles.lua similarity index 100% rename from puzzles.lua rename to src/data/puzzles.lua diff --git a/engine.lua b/src/engine/engine.lua similarity index 96% rename from engine.lua rename to src/engine/engine.lua index 5f247d3a..31e16662 100644 --- a/engine.lua +++ b/src/engine/engine.lua @@ -21,8 +21,9 @@ Stack = class(function(s, which, mode, speed, difficulty) local level = speed or 5 s.character = (type(difficulty) == "string") and difficulty or s.character s.level = level - speed = level_to_starting_speed[level] + speed = level_to_starting_speed[level] difficulty = level_to_difficulty[level] + s.speed_times = {15*60, idx=1, delta=15*60} s.max_health = level_to_hang_time[level] if s.mode == "2ptime" then @@ -91,20 +92,20 @@ Stack = class(function(s, which, mode, speed, difficulty) -- unlocked. s.has_risen = false -- set once the stack rises once during the game - s.stop_time = 0 + s.stop_time = 0 s.stop_time_timer = 0 - s.NCOLORS = s.NCOLORS or 5 - s.score = 0 -- der skore + s.NCOLORS = s.NCOLORS or 5 + s.score = 0 -- der skore s.chain_counter = 0 -- how high is the current chain? s.panels_in_top_row = false -- boolean, for losing the game - s.danger = false -- boolean, panels in the top row (danger) - s.danger_music = false -- changes music state + s.danger = false -- boolean, panels in the top row (danger) + s.danger_music = false -- changes music state - s.n_active_panels = 0 + s.n_active_panels = 0 s.prev_active_panels = 0 - s.n_chain_panels= 0 + s.n_chain_panels = 0 -- These change depending on the difficulty and speed levels: s.FRAMECOUNT_HOVER = FC_HOVER[s.difficulty] @@ -165,13 +166,13 @@ function Stack.mkcpy(self, other) else end--]] - other.garbage_q = deepcpy(self.garbage_q) + other.garbage_q = deepcpy(self.garbage_q) other.garbage_to_send = deepcpy(self.garbage_to_send) - other.input_state = self.input_state - local height = self.height or other.height - local width = self.width or other.width - local height_to_cpy = #self.panels - other.panels = other.panels or {} + other.input_state = self.input_state + local height = self.height or other.height + local width = self.width or other.width + local height_to_cpy = #self.panels + other.panels = other.panels or {} for i=1,height_to_cpy do if other.panels[i] == nil then other.panels[i] = {} @@ -193,26 +194,26 @@ function Stack.mkcpy(self, other) other.panels[i][j]:clear() end end - other.CLOCK = self.CLOCK - other.displacement = self.displacement - other.speed_times = deepcpy(self.speed_times) - other.panels_to_speedup = self.panels_to_speedup - other.stop_time = self.stop_time - other.stop_time_timer = self.stop_time_timer - other.score = self.score - other.chain_counter = self.chain_counter - other.n_active_panels = self.n_active_panels - other.prev_active_panels = self.prev_active_panels - other.n_chain_panels = self.n_chain_panels - other.FRAMECOUNT_RISE = self.FRAMECOUNT_RISE - other.rise_timer = self.rise_timer - other.manual_raise_yet = self.manual_raise_yet + other.CLOCK = self.CLOCK + other.displacement = self.displacement + other.speed_times = deepcpy(self.speed_times) + other.panels_to_speedup = self.panels_to_speedup + other.stop_time = self.stop_time + other.stop_time_timer = self.stop_time_timer + other.score = self.score + other.chain_counter = self.chain_counter + other.n_active_panels = self.n_active_panels + other.prev_active_panels = self.prev_active_panels + other.n_chain_panels = self.n_chain_panels + other.FRAMECOUNT_RISE = self.FRAMECOUNT_RISE + other.rise_timer = self.rise_timer + other.manual_raise_yet = self.manual_raise_yet other.prevent_manual_raise = self.prevent_manual_raise - other.cur_timer = self.cur_timer - other.cur_dir = self.cur_dir - other.cur_row = self.cur_row - other.cur_col = self.cur_col - other.card_q = deepcpy(self.card_q) + other.cur_timer = self.cur_timer + other.cur_dir = self.cur_dir + other.cur_row = self.cur_row + other.cur_col = self.cur_col + other.card_q = deepcpy(self.card_q) return other end @@ -265,21 +266,18 @@ end -- chaining do - local exclude_hover_set = {matched=true, popping=true, popped=true, - hovering=true, falling=true} + local exclude_hover_set = {matched=true, popping=true, popped=true, hovering=true, falling=true} function Panel.exclude_hover(self) return exclude_hover_set[self.state] or self.garbage end - local exclude_match_set = {swapping=true, matched=true, popping=true, - popped=true, dimmed=true, falling=true} + local exclude_match_set = {swapping=true, matched=true, popping=true, popped=true, dimmed=true, falling=true} function Panel.exclude_match(self) return exclude_match_set[self.state] or self.color == 0 or self.color == 9 or (self.state == "hovering" and not self.match_anyway) end - local exclude_swap_set = {matched=true, popping=true, popped=true, - hovering=true, dimmed=true} + local exclude_swap_set = {matched=true, popping=true, popped=true, hovering=true, dimmed=true} function Panel.exclude_swap(self) return exclude_swap_set[self.state] or self.dont_swap or self.garbage end @@ -292,8 +290,7 @@ do -- "falling-ness should not propogate up through this panel" -- We need this because garbage doesn't hover, it just falls -- opportunistically. - local block_garbage_fall_set = {matched=true, popping=true, - popped=true, hovering=true, swapping=true} + local block_garbage_fall_set = {matched=true, popping=true, popped=true, hovering=true, swapping=true} function Panel.block_garbage_fall(self) return block_garbage_fall_set[self.state] or self.color == 0 end diff --git a/gen_panels.lua b/src/engine/gen_panels.lua similarity index 99% rename from gen_panels.lua rename to src/engine/gen_panels.lua index 95528a9e..519a0d35 100644 --- a/gen_panels.lua +++ b/src/engine/gen_panels.lua @@ -1,4 +1,3 @@ -require("util") local random = math.random -- stuff should have first_seven, metal, vs_mode, metal_col, prev_metal_col diff --git a/graphics.lua b/src/engine/graphics.lua similarity index 96% rename from graphics.lua rename to src/engine/graphics.lua index 1eb99795..30a965d5 100644 --- a/graphics.lua +++ b/src/engine/graphics.lua @@ -249,14 +249,14 @@ function Stack.render(self) else draw(imgs.doubleface, draw_x+8*(width-1), top_y+16*((height-2)/2)) end - draw(imgs.left, draw_x, top_y, 0, 1, height*16) - draw(imgs.right, draw_x+16*(width-1)+8, top_y, 0, 1, height*16) - draw(imgs.top, draw_x, top_y, 0, width*16) - draw(imgs.bot, draw_x, draw_y+14, 0, width*16) - draw(imgs.topleft, draw_x, top_y) - draw(imgs.topright, draw_x+16*width-8, top_y) - draw(imgs.botleft, draw_x, draw_y+13) - draw(imgs.botright, draw_x+16*width-8, draw_y+13) + draw(imgs.left , draw_x , top_y , 0, 1 , height*16) + draw(imgs.right , draw_x+16*(width-1)+8, top_y , 0, 1 , height*16) + draw(imgs.top , draw_x , top_y , 0, width*16) + draw(imgs.bot , draw_x , draw_y+14 , 0, width*16) + draw(imgs.topleft , draw_x , top_y) + draw(imgs.topright, draw_x+16*width-8 , top_y) + draw(imgs.botleft , draw_x , draw_y+13) + draw(imgs.botright, draw_x+16*width-8 , draw_y+13) end end if panel.state == "matched" then @@ -572,3 +572,4 @@ void Render_Info_1P() TBlit(224,95,P1SpeedLVDisplay,screen); }--]] + diff --git a/input.lua b/src/engine/input.lua similarity index 100% rename from input.lua rename to src/engine/input.lua diff --git a/mainloop.lua b/src/engine/mainloop.lua similarity index 98% rename from mainloop.lua rename to src/engine/mainloop.lua index 4ca35b04..abd3bfb2 100644 --- a/mainloop.lua +++ b/src/engine/mainloop.lua @@ -84,12 +84,12 @@ function menu_key_func(fixed, configurable, rept) end end -menu_up = menu_key_func({"up"}, {"up"}, true) -menu_down = menu_key_func({"down"}, {"down"}, true) -menu_left = menu_key_func({"left"}, {"left"}, true) -menu_right = menu_key_func({"right"}, {"right"}, true) -menu_enter = menu_key_func({"return","kenter","z"}, {"swap1"}, false) -menu_escape = menu_key_func({"escape","x"}, {"swap2"}, false) +menu_up = menu_key_func({"up"} , {"up"} , true) +menu_down = menu_key_func({"down"} , {"down"} , true) +menu_left = menu_key_func({"left"} , {"left"} , true) +menu_right = menu_key_func({"right"}, {"right"}, true) +menu_enter = menu_key_func({"return", "kenter" , "z"} , {"swap1"}, false) +menu_escape = menu_key_func({"escape", "x"} , {"swap2"}, false) do local active_idx = 1 @@ -97,11 +97,14 @@ do local items = {{"1P endless", main_select_speed_99, {main_endless}}, {"1P puzzle", main_select_puzz}, {"1P time attack", main_select_speed_99, {main_time_attack}}, - {"2P fakevs at burke.ro", main_net_vs_setup, {"burke.ro"}}, - {"2P fakevs local game", main_local_vs_setup}, + {"",nil}, + {"2P vs Server", main_net_vs_setup, {"burke.ro"}}, + {"2P vs Local", main_local_vs_setup}, + {"",nil}, {"Replay of 1P endless", main_replay_endless}, {"Replay of 1P puzzle", main_replay_puzzle}, - {"Replay of 2P fakevs", main_replay_vs}, + {"Replay of 2P vs", main_replay_vs}, + {"",nil}, {"Configure input", main_config_input}, {"Set name", main_set_name}, {"Quit", os.exit}} diff --git a/network.lua b/src/engine/network.lua similarity index 100% rename from network.lua rename to src/engine/network.lua diff --git a/REALLYBAD.txt b/src/engine/nextplay.txt similarity index 100% rename from REALLYBAD.txt rename to src/engine/nextplay.txt diff --git a/save.lua b/src/engine/save.lua similarity index 100% rename from save.lua rename to src/engine/save.lua diff --git a/class.lua b/src/lib/class.lua similarity index 100% rename from class.lua rename to src/lib/class.lua diff --git a/dkjson.lua b/src/lib/dkjson.lua similarity index 100% rename from dkjson.lua rename to src/lib/dkjson.lua diff --git a/facktabs.lua b/src/lib/facktabs.lua similarity index 100% rename from facktabs.lua rename to src/lib/facktabs.lua diff --git a/queue.lua b/src/lib/queue.lua similarity index 100% rename from queue.lua rename to src/lib/queue.lua diff --git a/stridx.lua b/src/lib/stridx.lua similarity index 100% rename from stridx.lua rename to src/lib/stridx.lua diff --git a/util.lua b/src/lib/util.lua similarity index 100% rename from util.lua rename to src/lib/util.lua diff --git a/main.lua b/src/main.lua similarity index 76% rename from main.lua rename to src/main.lua index 768458ea..f0606fa5 100644 --- a/main.lua +++ b/src/main.lua @@ -1,16 +1,21 @@ +-- lib files socket = require("socket") -json = require("dkjson") -require("util") -require("class") -require("queue") -require("globals") -require("save") -require("engine") -require("graphics") -require("input") -require("network") -require("puzzles") -require("mainloop") +json = require("lib.dkjson") +require("lib.util") +require("lib.class") +require("lib.queue") + +-- data +require("data.globals") +require("data.puzzles") + +-- engine +require("engine.save") +require("engine.engine") +require("engine.graphics") +require("engine.input") +require("engine.network") +require("engine.mainloop") local N_FRAMES = 0 diff --git a/server.lua b/src/server.lua similarity index 96% rename from server.lua rename to src/server.lua index 3d39bce1..212fce7d 100644 --- a/server.lua +++ b/src/server.lua @@ -1,17 +1,18 @@ +json = require("lib.dkjson") require("socket") -require("class") -json = require("dkjson") -require("stridx") -require("gen_panels") +require("lib.class") +require("lib.util") +require("lib.stridx") +require("engine.gen_panels") -local byte = string.byte -local char = string.char -local pairs = pairs -local ipairs = ipairs -local random = math.random +local byte = string.byte +local char = string.char +local pairs = pairs +local ipairs = ipairs +local random = math.random local lobby_changed = false -local time = os.time -local TIMEOUT = 10 +local time = os.time +local TIMEOUT = 10 local VERSION = "004"