Compare commits

...

161 Commits

Author SHA1 Message Date
MrZ_26
86654689da 修改更新历史 2023-09-19 14:15:00 +08:00
MrZ_26
b4901add94 暂时不使用越南语词典,等待翻译更新 2023-09-19 14:14:48 +08:00
MrZ_26
8df321b84d 修复swap模式hold和无限hold的冲突 2023-09-19 14:05:28 +08:00
MrZ_26
6a4dfb47bb 续上一块的das不再计一次操作次数 2023-09-19 12:14:48 +08:00
MrZ_26
dd8a810591 离开录像菜单时会清空mod选择状态 2023-09-19 01:58:30 +08:00
NOT_A_ROBOT
009858e2f8 Improve Tech Finesse Lock and add some other minor things (#950)
* Fix VK and overhang detection in Tech Finesse Lock

* Make Tech Finesse Lock overhang logic more lenient

* Add finesse kill to Tech Finesse Lock
(at this point if you still make a finesse error even after getting limited inputs then you have a huge skill issue)

* Disable O rotation in Tech Finesse Lock if no O-spin
+ Added RS name (RS.name, P.RS.name)
+ Added hook_spawn and hook_hold

* Update Zframework

* Fix weird backfire location
2023-09-19 01:15:16 +08:00
Imple Lee
337293dbe1 add hold i_s (#971)
* hold with i_s!

* fix hold i_s in swap mode

* Only draw `holdCount` holds

* bump room version

hold i_s is not back-compatible
2023-09-16 01:35:20 +08:00
sakurw
5e0be0d463 Update lang_ja.lua (#967)
* Update lang_ja.lua

* Update lang_ja.lua
2023-09-14 16:47:57 +08:00
Imple Lee
cf147be119 fix swap bagline (#970)
* fix bagline for swap mode

* remove bagline when a block leaves nextqueue
2023-09-14 16:47:39 +08:00
MrZ_26
c695596285 添加代码格式化风格文件
试着格式化一些文件
2023-09-12 20:01:16 +08:00
NOT_A_ROBOT
7b97aefa0a Vectorize and redesign some modeicons (#966) 2023-09-11 18:04:47 +08:00
NOT_A_ROBOT
a3e5ccffa4 Adjust Dig Efficiency rank cutoffs (#965) 2023-09-11 18:04:22 +08:00
Imple Lee
452fa65748 new bagline system (#963)
closes #940
2023-09-11 18:03:09 +08:00
MrZ_26
7141f46948 调整c2出块算法在词典里的位置
调整中文词典几个搜索关键字
2023-09-08 15:59:54 +08:00
MrZ_26
481ea06e61 完善几个语言文件
微调无尽模式代码
2023-09-07 14:51:33 +08:00
NOT_A_ROBOT
3aa60d3488 Add toggleable infinite height in Infinite mode (#961)
* Add toggleable infinite height in Infinite mode

* Use font size 25 for infinite mode
2023-09-07 14:34:45 +08:00
NOT_A_ROBOT
e152e147e2 Refactor Master Graded (#960) 2023-09-05 18:01:54 +08:00
C₂₉H₂₅N₃O₅
c7b8dd24c7 Font fixes and symbol additions (#956)
* Updated two block skins

* Updated in-game font

- Adjusted the alignment of font
- Added missing glyphs in some languages
- Redesigned grade letters to increase legibility

* Symbol and font fixes

- Added some more symbols
- Fixed some missing characters
2023-08-29 13:43:17 +08:00
NOT_A_ROBOT
9e384f80cb Rename Invisible modes (#954)
* Rename Invisible modes

* Fix indentation in zh_code

* Undo changes in Vietnamese lang file
2023-08-29 13:42:43 +08:00
C6H12O6 + NaCl + H2O
7f8e3e647a Update Zictionary scene + Small change in Vietnamese translation (#935)
* Squashed commit of the following:

commit f50627095805c090b49c1054645ad33cb896f4d0
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Aug 5 09:49:59 2023 +0700

    Change icon in dict.lua

commit 1f7da069425f00f431c9299689897a665cb2d80d
Merge: b212fff8 7be2aa50
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Aug 4 18:14:29 2023 +0700

    Merge https://github.com/26F-Studio/Techmino into VietnameseTranslation

commit 7be2aa50dd
Author: C₂₉H₂₅N₃O₅ <a1228465111@163.com>
Date:   Fri Aug 4 18:40:12 2023 +0800

    Font & Virtual Key Update (#932)

    - Changed the main font to Exo2
    - Changed the monospaced font to League Mono
    - Changed the virtual key design to increase legibility and match the font
    - Added a few symbols

commit ed9417dcdf
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Aug 3 22:57:06 2023 +0700

    Reupdate Vietnamese translation (#930)

commit b212fff8d9
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Aug 3 20:54:45 2023 +0700

    Small update

commit b59d1dc188
Merge: 8fcdbd9d 36522c71
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Aug 3 19:40:20 2023 +0700

    Merge branch 'main' of https://github.com/26F-Studio/Techmino into VietnameseTranslation

commit 36522c7146
Author: MrZ_26 <1046101471@qq.com>
Date:   Thu Aug 3 16:04:04 2023 +0800

    修复词典用不了滚轮
    整理代码

commit 20b74ea78a
Author: MrZ_26 <1046101471@qq.com>
Date:   Thu Aug 3 13:46:27 2023 +0800

    词典交互和代码逻辑优化
    框架跟进

commit 0ae9cbcdaa
Author: MrZ_26 <1046101471@qq.com>
Date:   Thu Aug 3 10:11:27 2023 +0800

    删行末空格

commit c9cbb0e363
Author: MrZ_26 <1046101471@qq.com>
Date:   Wed Aug 2 21:45:31 2023 +0800

    修复fixed序列反了

commit 0595ce4ea6
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Wed Aug 2 10:44:01 2023 +0700

    Update Vietnamese translation (again) (#929)

commit 8fcdbd9df5
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Wed Aug 2 10:22:54 2023 +0700

    remove duplicate

commit 798ea1be4f
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Wed Aug 2 10:09:02 2023 +0700

    remove duplicate item in ZH file (thanks SundayLee)

commit e6f4f69f6f
Merge: 14630990 fa89ba55
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Wed Aug 2 10:00:17 2023 +0700

    Merge branch 'VietnameseTranslation' of https://github.com/SweetSea-ButImNotSweet/Techmino into VietnameseTranslation

commit 14630990be
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 23:43:35 2023 +0700

    Small change

commit 7a15406262
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 15 00:46:17 2023 +0700

    small update

commit 1d10f14c8e
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 21:08:10 2023 +0700

    Remove most of unnecessary keywords

commit 07341d48e4
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 14:38:46 2023 +0700

    Update the manual (Rebasing all old commits)

commit 2e2427f942
Author: MrZ_26 <1046101471@qq.com>
Date:   Wed Aug 2 10:34:19 2023 +0800

    框架跟进

commit aeddee2f03
Author: MrZ_26 <1046101471@qq.com>
Date:   Wed Aug 2 10:23:20 2023 +0800

    修复自定义页面编辑场地消行按钮用不了

commit 43037f8043
Author: NOT_A_ROBOT <not_a_normal_robot@protonmail.com>
Date:   Tue Aug 1 23:50:08 2023 +0700

    Shorten mission displays with RLE (#927) (may need optimization)

commit 0c3d552d08
Author: MrZ_26 <1046101471@qq.com>
Date:   Wed Aug 2 00:46:54 2023 +0800

    越南语语言文件小修正

commit fa89ba55aa
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 23:43:35 2023 +0700

    Small change

commit a1b6b8a434
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 23:39:04 2023 +0700

    Vietnamese Zictionary update [ONLY MERGE AFTER MERGING #926] (#915)

    * Tweak keywords

    * Small update

    * Update the manual

    * Remove most of unnecessary keywords

    * Revert change

    * Push updates

    * small update

    * Add tips that missing

    * Nvm, little change

    * Minor changes

    * Little update

    * Some updates

    * Small change in updatelog

    * Push update

    * small update

    * Small update

    * Update the translation, last time?

    * Push

    * Push small updates, READY!

    * Push updates

    * Clean up some missed items

    * small updates because of my flipped memory

    * Small changes + NEW TOOL!

    * Remove old info

    * Small updates

    * Small updates

    * Replace alnost "hố" --> "lỗ

    * Small updates

    * Sort group, adapt #926

    * small update

    * Fix some stupid mistake when do translating

    * Small change

    * small change

    * Clean up outdated comment

    * Fixed wrong group tag

    * Add a funny tip 🤪

    * Fix tip

    * Fix tip again

    * Fix tip again (x2)

commit 5061cad389
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 23:38:30 2023 +0700

    [HOTFIX] [MERGE NOW!] Fix bugs for #926 (#928)

    * Attempt to rework Zictionary scene

    * Rearrange the layout and handling most of thing

    * Remove ALPHA key, done keyboard handling, changed some key's behavior

    * Add Help text

    * Update Help text & fix some bugs

    * Update help text

    * Edit help text

    * Support gamepad

    * small changes in help text

    * small changes

    * Fix copy bug

    * small change

    * Add hint text to open Hint

    * Fix a bug that item accidentally selected when scrolling

    * Clean up a dumb function
    (Forget to cleanup in previous commit)

    * add backup solution, just in case

    * fix another bug

    * fix touch bug

    * Refix the scroll bug when touch

    * small code changes

    * small change in English file

    * Fix bugs, change text, adjust a icon

    * Change English text

    * Add Vietnamese translation

    * Add Chinese, adjust English & Vietnamese

    * Small change in secret Easter egg

    * Fix spelling mistake

commit a26c49451b
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 11:01:26 2023 +0700

    Fix tip again (x2)

commit d66b2d6131
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 10:39:08 2023 +0700

    Fix tip again

commit e95f87ace1
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 10:35:13 2023 +0700

    Fix tip

commit 1ccd211bfc
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Aug 1 10:12:23 2023 +0700

    Add a funny tip 🤪

commit 86ce124dd0
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 22:49:09 2023 +0700

    Fixed wrong group tag

commit 7d62a04b17
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 22:47:02 2023 +0700

    Clean up outdated comment

commit fd3910fe14
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 15:37:10 2023 +0700

    small change

commit 4ab59ef4a2
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 12:13:45 2023 +0700

    Small change

commit bf5f7cb2c9
Merge: bb7b1b93 9d3fb33d
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 11:04:48 2023 +0700

    Merge branch '26F-Studio:main' into VietnameseTranslation

commit 9d3fb33d10
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 31 02:20:24 2023 +0700

    Improve Zictionary scene so we don't need to hyper tapping much than before (#926)

    * Attempt to rework Zictionary scene

    * Rearrange the layout and handling most of thing

    * Remove ALPHA key, done keyboard handling, changed some key's behavior

    * Add Help text

    * Update Help text & fix some bugs

    * Update help text

    * Edit help text

    * Support gamepad

    * small changes in help text

    * small changes

    * Fix copy bug

    * small change

    * Add hint text to open Hint

    * Fix a bug that item accidentally selected when scrolling

    * Clean up a dumb function
    (Forget to cleanup in previous commit)

    * add backup solution, just in case

    * fix another bug

    * fix touch bug

    * Refix the scroll bug when touch

    * small code changes

    * small change in English file

commit 4d82b182a6
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 31 02:53:15 2023 +0800

    语言选择场景标题文本修改

commit bb7b1b93cb
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 29 10:36:53 2023 +0700

    Fix some stupid mistake when do translating

commit 5358538cb4
Merge: 23fd5cdb 78ac05ef
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Jul 28 23:33:55 2023 +0700

    Merge branch '26F-Studio:main' into VietnameseTranslation

commit 23fd5cdbb9
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Jul 28 23:33:19 2023 +0700

    small update

commit 4796a57bb4
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Jul 28 23:23:18 2023 +0700

    Sort group, adapt #926

commit 78ac05efba
Author: MrZ_26 <1046101471@qq.com>
Date:   Wed Jul 26 02:02:42 2023 +0800

    框架跟进

commit cd7c58eb32
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 24 15:54:33 2023 +0700

    Small updates

commit 53857af2fa
Merge: a2cdd6f3 02cf7b71
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 23 21:59:57 2023 +0700

    Merge branch '26F-Studio:main' into VietnameseTranslation

commit a2cdd6f367
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 23 21:59:28 2023 +0700

    Replace alnost "hố" --> "lỗ

commit 02cf7b71c1
Merge: 091bb234 aefde7a7
Author: MrZ_26 <1046101471@qq.com>
Date:   Thu Jul 20 15:00:40 2023 +0800

    Merge remote-tracking branch 'tech/imple/revise-seq-generator'

commit 4629b4718f
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 17 22:17:15 2023 +0700

    Small updates

commit 9907971722
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 17 22:04:06 2023 +0700

    Small updates

commit 16d89195d5
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 17 09:58:28 2023 +0700

    Remove old info

commit 091bb23488
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 10:47:23 2023 +0800

    词典标题栏不会溢出了

commit 0ec0d80e9c
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 10:29:38 2023 +0800

    修复手柄摇杆左右的图标反了 close #912

commit d4d87ccb5c
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 05:50:18 2023 +0800

    调整bagP1inf序列模式位置

commit c782c1fcdd
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 05:47:20 2023 +0800

    修复四连块之外的ASC旋转中心不正确 close #910

commit f7cdae8677
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 04:24:49 2023 +0800

    修复玩家死亡掉落动画任务能跨局把新开的局里的玩家移除 close #918

commit f41a68de0d
Author: MrZ_26 <1046101471@qq.com>
Date:   Mon Jul 17 04:19:32 2023 +0800

     添加bagPinf序列模式的图标

commit c38bb7986a
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 17 00:15:31 2023 +0700

    Small changes + NEW TOOL!

commit 80b56af045
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 12:42:02 2023 +0700

    small updates because of my flipped memory

commit 745f836ddf
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 12:30:22 2023 +0700

    Clean up some missed items

commit 9f45842046
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 12:23:14 2023 +0700

    Push updates

commit 9b7c09d89c
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 11:50:04 2023 +0700

    Push small updates, READY!

commit be11a9ada4
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 11:25:52 2023 +0700

    Push

commit 92361e073c
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sun Jul 16 11:18:50 2023 +0700

    Update the translation, last time?

commit 146db2325d
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 15 09:15:08 2023 +0700

    Small update

commit 9ec237acc1
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 15 00:46:17 2023 +0700

    small update

commit c39c6c0701
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 15 00:42:14 2023 +0700

    Push update

commit 1273d54135
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Sat Jul 15 00:42:01 2023 +0700

    Small change in updatelog

commit b649d9864d
Merge: 58df11fe 3dc61688
Author: C6H12O6 + NaCl + H2O <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Jul 14 19:52:50 2023 +0700

    Merge branch '26F-Studio:main' into VietnameseTranslation

commit 58df11feb3
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Fri Jul 14 10:12:33 2023 +0700

    Some updates

commit aefde7a777
Merge: 7e00a7d7 3dc61688
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Thu Jul 13 14:15:51 2023 +0800

    Merge branch 'main' into imple/revise-seq-generator

commit 3dc61688c4
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Thu Jul 13 13:26:17 2023 +0800

    add new generator: bagP1inf (#916)

commit 6502af6003
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Jul 13 09:10:20 2023 +0700

    Little update

commit 42f0671223
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Jul 13 07:38:06 2023 +0700

    Minor changes

commit 7f2f608fd4
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Jul 13 00:40:08 2023 +0700

    Nvm, little change

commit 8e0315762f
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Thu Jul 13 00:32:27 2023 +0700

    Add tips that missing

commit 7e00a7d764
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Wed Jul 12 07:42:50 2023 +0800

    use `trueNextCount` as replay-visible next count

commit 8304cf655b
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Wed Jul 12 07:27:22 2023 +0800

    make sequence generator independent of player

commit 7d4d664b5b
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Jul 11 23:17:38 2023 +0700

    small update

commit 34c125504b
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Tue Jul 11 20:47:14 2023 +0700

    Push updates

commit c25e7a3d5b
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Tue Jul 11 20:05:31 2023 +0800

    fix noInitSZO

commit b7b02ab5bc
Author: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Date:   Tue Jul 11 19:50:52 2023 +0800

    simplify sequence generator

commit f0e2a6d162
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 21:08:22 2023 +0700

    Revert change

commit b1b39a3a67
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 21:08:10 2023 +0700

    Remove most of unnecessary keywords

commit 47b201ed71
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 14:38:46 2023 +0700

    Update the manual

commit 6c59718274
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 12:12:34 2023 +0700

    Small update

commit 974895ca03
Author: Squishy (C6H12O6+NaCl+H2O) <106439598+SweetSea-ButImNotSweet@users.noreply.github.com>
Date:   Mon Jul 10 12:03:28 2023 +0700

    Tweak keywords

* Edit the index in Zictionary, not much

* Revert a change in dict.lua

* Small change in Vietnamese translation

* Fix strange behaviors and update Vnese Zictionary

* Push a little change

* Last update?

* Rewritten sentences

* Fix stuck help text (by not clearing search result when trigger with F1 key

* Fix stuck help text
(by not clearing search result when trigger with F1 key)

* Fix a small bug

* Update Vietnamese translation

* small change

* Block performance loss

* Update Vietnamese translation (to 1/2 works now)

* Replace unfittable word

* Temp update

* Just a big update

* Update both manual and UI translation

* Smaller fallback

* uh forgetting changes

* remove "not" in a line which was for debugging

* Sync work

* Update debug code

* Update debug code

* Update Zictionary + update for hot reloading code

* Last update

* Last update again

* Last update, TB;DR

* Commenting out the hotload function

* Merge from the stash

* shorten file

* Fix cannot use Backspace key

* Edit comment

* last update
2023-08-28 01:55:34 +08:00
C6H12O6 + NaCl + H2O
df79e99fa5 Fix Piano app (#953) 2023-08-28 01:54:30 +08:00
MrZ_26
03eafb4881 框架跟进 2023-08-24 14:33:59 +08:00
MrZ_26
e795604721 调整新的限操作极简模式
调整地图右下角几个图标位置
框架跟进
2023-08-23 17:24:34 +08:00
NOT_A_ROBOT
9769b33deb Add "Tech Finesse Lock" modes and some other improvements (#946)
* Improve Tech FInesse modes and add new player hooks

* Add Tech Finesse[+] Lock into mode map

* Credit PopUpWaffles

* Rearrange mode map
2023-08-23 16:12:42 +08:00
C₂₉H₂₅N₃O₅
51968741ea Updated two block skins and font (#944)
* Updated two block skins

* Updated in-game font

- Adjusted the alignment of font
- Added missing glyphs in some languages
- Redesigned grade letters to increase legibility
2023-08-18 01:30:44 +08:00
MrZ_26
29a5cc63df 修正一些语言文件的空白字符小问题 2023-08-16 04:21:33 +08:00
C₂₉H₂₅N₃O₅
3f0bf28fbe Reworked English translations for Zictionary and more (#942) 2023-08-16 04:04:30 +08:00
MrZ_26
2321176712 开启mod后mod菜单按钮会闪烁 2023-08-14 18:48:43 +08:00
MrZ_26
974308c843 删除一个没用到的资源
添加mod出现动画的音效
2023-08-14 18:25:11 +08:00
MrZ_26
1d59cba316 修复不知道多久以前就加入但是不知道什么时候又坏掉了的游戏开始时mod展示动画 2023-08-14 18:13:20 +08:00
NebulaBlaze
f3e1e9b4b2 French language (#941)
Co-authored-by: Adilou159 <142124505+Adilou159@users.noreply.github.com>
2023-08-13 23:20:55 +08:00
C6H12O6 + NaCl + H2O
5c38bb64a0 Add virtual keys to Piano app (#939) 2023-08-13 22:50:04 +08:00
MrZ_26
3fbff37095 arm小程序删除答错自动清空
整理代码 框架跟进
2023-08-11 18:29:30 +08:00
C6H12O6 + NaCl + H2O
540099a944 Update app_arm (#938) 2023-08-11 17:40:12 +08:00
MrZ_26
cd0b276885 更新赞助名单 2023-08-11 14:40:24 +08:00
MrZ_26
519f84a804 框架跟进 2023-08-09 20:29:49 +08:00
MrZ_26
e44462bb78 框架跟进 2023-08-07 01:30:22 +08:00
NOT_A_ROBOT
9da2300194 Update sprint WR main menu tip (#936) 2023-08-07 01:29:37 +08:00
sakurw
91c39ee7ef Update dict_ja.lua (#934) 2023-08-05 01:49:50 +08:00
sakurw
58ea85e6b9 Update lang_ja.lua (#933) 2023-08-05 01:49:34 +08:00
C₂₉H₂₅N₃O₅
7be2aa50dd Font & Virtual Key Update (#932)
- Changed the main font to Exo2
- Changed the monospaced font to League Mono
- Changed the virtual key design to increase legibility and match the font
- Added a few symbols
2023-08-04 18:40:12 +08:00
C6H12O6 + NaCl + H2O
ed9417dcdf Reupdate Vietnamese translation (#930) 2023-08-03 23:57:06 +08:00
MrZ_26
36522c7146 修复词典用不了滚轮
整理代码
2023-08-03 16:04:04 +08:00
MrZ_26
20b74ea78a 词典交互和代码逻辑优化
框架跟进
2023-08-03 13:46:27 +08:00
MrZ_26
0ae9cbcdaa 删行末空格 2023-08-03 10:11:27 +08:00
MrZ_26
c9cbb0e363 修复fixed序列反了 2023-08-02 21:45:31 +08:00
C6H12O6 + NaCl + H2O
0595ce4ea6 Update Vietnamese translation (again) (#929) 2023-08-02 11:44:01 +08:00
MrZ_26
2e2427f942 框架跟进 2023-08-02 10:34:19 +08:00
MrZ_26
aeddee2f03 修复自定义页面编辑场地消行按钮用不了 2023-08-02 10:23:20 +08:00
NOT_A_ROBOT
43037f8043 Shorten mission displays with RLE (#927) (may need optimization) 2023-08-02 00:50:08 +08:00
MrZ_26
0c3d552d08 越南语语言文件小修正 2023-08-02 00:46:54 +08:00
C6H12O6 + NaCl + H2O
a1b6b8a434 Vietnamese Zictionary update [ONLY MERGE AFTER MERGING #926] (#915)
* Tweak keywords

* Small update

* Update the manual

* Remove most of unnecessary keywords

* Revert change

* Push updates

* small update

* Add tips that missing

* Nvm, little change

* Minor changes

* Little update

* Some updates

* Small change in updatelog

* Push update

* small update

* Small update

* Update the translation, last time?

* Push

* Push small updates, READY!

* Push updates

* Clean up some missed items

* small updates because of my flipped memory

* Small changes + NEW TOOL!

* Remove old info

* Small updates

* Small updates

* Replace alnost "hố" --> "lỗ

* Small updates

* Sort group, adapt #926

* small update

* Fix some stupid mistake when do translating

* Small change

* small change

* Clean up outdated comment

* Fixed wrong group tag

* Add a funny tip 🤪

* Fix tip

* Fix tip again

* Fix tip again (x2)
2023-08-02 00:39:04 +08:00
C6H12O6 + NaCl + H2O
5061cad389 [HOTFIX] [MERGE NOW!] Fix bugs for #926 (#928)
* Attempt to rework Zictionary scene

* Rearrange the layout and handling most of thing

* Remove ALPHA key, done keyboard handling, changed some key's behavior

* Add Help text

* Update Help text & fix some bugs

* Update help text

* Edit help text

* Support gamepad

* small changes in help text

* small changes

* Fix copy bug

* small change

* Add hint text to open Hint

* Fix a bug that item accidentally selected when scrolling

* Clean up a dumb function
(Forget to cleanup in previous commit)

* add backup solution, just in case

* fix another bug

* fix touch bug

* Refix the scroll bug when touch

* small code changes

* small change in English file

* Fix bugs, change text, adjust a icon

* Change English text

* Add Vietnamese translation

* Add Chinese, adjust English & Vietnamese

* Small change in secret Easter egg

* Fix spelling mistake
2023-08-02 00:38:30 +08:00
C6H12O6 + NaCl + H2O
9d3fb33d10 Improve Zictionary scene so we don't need to hyper tapping much than before (#926)
* Attempt to rework Zictionary scene

* Rearrange the layout and handling most of thing

* Remove ALPHA key, done keyboard handling, changed some key's behavior

* Add Help text

* Update Help text & fix some bugs

* Update help text

* Edit help text

* Support gamepad

* small changes in help text

* small changes

* Fix copy bug

* small change

* Add hint text to open Hint

* Fix a bug that item accidentally selected when scrolling

* Clean up a dumb function
(Forget to cleanup in previous commit)

* add backup solution, just in case

* fix another bug

* fix touch bug

* Refix the scroll bug when touch

* small code changes

* small change in English file
2023-07-31 03:20:24 +08:00
MrZ_26
4d82b182a6 语言选择场景标题文本修改 2023-07-31 02:53:15 +08:00
MrZ_26
78ac05efba 框架跟进 2023-07-26 02:02:42 +08:00
MrZ_26
02cf7b71c1 Merge remote-tracking branch 'tech/imple/revise-seq-generator' 2023-07-20 15:00:40 +08:00
MrZ_26
091bb23488 词典标题栏不会溢出了 2023-07-17 10:47:23 +08:00
MrZ_26
0ec0d80e9c 修复手柄摇杆左右的图标反了 close #912 2023-07-17 10:29:38 +08:00
MrZ_26
d4d87ccb5c 调整bagP1inf序列模式位置 2023-07-17 05:50:18 +08:00
MrZ_26
c782c1fcdd 修复四连块之外的ASC旋转中心不正确 close #910 2023-07-17 05:47:20 +08:00
MrZ_26
f7cdae8677 修复玩家死亡掉落动画任务能跨局把新开的局里的玩家移除 close #918 2023-07-17 04:24:49 +08:00
MrZ_26
f41a68de0d 添加bagPinf序列模式的图标 2023-07-17 04:19:32 +08:00
Imple Lee
aefde7a777 Merge branch 'main' into imple/revise-seq-generator 2023-07-13 14:15:51 +08:00
Imple Lee
3dc61688c4 add new generator: bagP1inf (#916) 2023-07-13 13:26:17 +08:00
Imple Lee
7e00a7d764 use trueNextCount as replay-visible next count 2023-07-12 07:42:50 +08:00
Imple Lee
8304cf655b make sequence generator independent of player 2023-07-12 07:27:22 +08:00
Imple Lee
c25e7a3d5b fix noInitSZO 2023-07-11 20:09:50 +08:00
Imple Lee
b7b02ab5bc simplify sequence generator 2023-07-11 20:09:34 +08:00
Nguyễn Quốc Hưng
b3a8724538 Vietnamese translation of Zictionary (#903)
Co-authored-by: Hưng Nguyễn <>
2023-07-03 09:53:55 +08:00
ParticleG
ed11faf909 更新CI for Web 2023-06-15 21:36:39 +08:00
ParticleG
b5cd0be057 版本推进 2023-06-15 11:06:26 +08:00
Particle_G
d31954d1e2 Merge pull request #904 from 26F-Studio/ci-web-test
Ci web test
2023-06-15 10:56:52 +08:00
MrZ_26
96bf30fcab 玩家死亡后不再占用更新和绘制资源
框架跟进
2023-06-15 01:18:37 +08:00
MrZ_26
e7fc5a676e 框架跟进 2023-06-15 00:20:42 +08:00
ParticleG
4a81d8beb0 框架跟进 2023-06-14 23:42:07 +08:00
ParticleG
c583769cf3 框架跟进 2023-06-14 18:06:38 +08:00
ParticleG
2ff2fd1940 框架跟进 2023-06-14 17:52:23 +08:00
ParticleG
6d45cf978a 框架跟进 2023-06-14 17:32:26 +08:00
ParticleG
4c3b80a1fb 框架跟进 2023-06-14 16:44:54 +08:00
ParticleG
d22aa81fa0 Add polyfill.lua for fallback support 2023-06-14 14:35:08 +08:00
ParticleG
1e76b8e533 检测系统标识为Web 2023-06-12 12:53:53 +08:00
ParticleG
886adc3534 - Only build Core 2023-06-12 12:38:56 +08:00
MrZ_26
aff7ffb2c4 小修格式 2023-06-12 12:16:06 +08:00
ParticleG
4ec1f7c5c8 修复遗漏break 2023-06-12 12:10:46 +08:00
MrZ_26
7772c9b424 若为Linux系统则override掉原来的file.read,加一个getInfo确保文件存在 2023-06-12 11:45:58 +08:00
MrZ_26
514f0a17b5 干掉所有的goto来测试love.js 2023-06-12 11:42:17 +08:00
MrZ_26
91adc0d153 框架跟进 2023-06-12 11:39:37 +08:00
MrZ_26
48425f5549 “出生音效”改为“生成音效” 2023-06-11 23:21:35 +08:00
sakurw
fd36562a7d Update lang_ja.lua (#900) 2023-06-11 23:20:09 +08:00
NOT_A_ROBOT
4b36442170 Fix "Stage Complete" text being off by one in Master Phantasm (#902) 2023-06-11 23:19:46 +08:00
MrZ_26
dad6beca05 Revert "更新词典一个词条"
This reverts commit ee61c5aa8d.
2023-06-01 15:27:53 +08:00
MrZ_26
ee61c5aa8d 更新词典一个词条 2023-06-01 01:06:29 +08:00
sakurw
1001588f97 Update dict_ja.lua (#896) 2023-06-01 01:06:02 +08:00
MrZ_26
25df3d819b 词典里的Harddrop discord链接改成Techmino的 2023-05-29 14:25:44 +08:00
MrZ_26
a2e5656747 修改更新历史 版本推进 2023-05-28 18:33:47 +08:00
MrZ_26
65fc0339b9 调整登录界面ui 2023-05-28 18:31:52 +08:00
MrZ_26
0421654c50 微调arm小程序数字字体,整理代码 2023-05-28 18:23:58 +08:00
MrZ_26
bdaa42f6df 添加flore语音包
支持消6以上的语音
2023-05-28 18:11:10 +08:00
NOT_A_ROBOT
9984c3ecb5 Add drawing feature to arithmetic app (#800)
* undo feature

* add auto draw functions for some levels

* Add drawing feature to bin/oct/hex levels

* Add left-aligned option to drawNum, switch from recursive to loop

* add support for drawing hex digits

* should be ready to push!

* Add help + number scaling, optimized some code

* finish drawing in arithmetic, just need icons now

* remove debugging thing in arm
2023-05-19 16:14:59 +08:00
MrZ_26
5e7c2309ac 修复密码框里有东西的时候如果密码框是隐藏的还会视为填了密码 2023-05-19 00:32:03 +08:00
MrZ_26
9dda8555a0 挖掘效率模式改为和tsd模式一样的低重力+不锁定+无限hold close #890 2023-05-11 13:34:23 +08:00
MrZ_26
43046a3cf3 修复对战和stack_e中hold致死但没有完全死的时候下一块悬空导致的幽灵行 2023-05-04 00:42:40 +08:00
Imple Lee
fe29cc532d fix many warnings (#889)
* fix many warnings

some of them can be solved by using a prototype-based system
maybe I can try to use some of these systems to reform backgrounds...

* Update app_mahjong.lua

---------

Co-authored-by: MrZ_26 <1046101471@qq.com>
2023-05-03 00:27:54 +08:00
Imple Lee
7dd73ef8d3 fix: description of combo in manuals (#885)
The description in the Chinese manual is correct but very
convoluted; the descriptions in the English manual and Japanese manual
are incorrect.
2023-04-24 18:29:07 +08:00
sakurw
ad6bd7be4b Update dict_ja.lua (#881) 2023-04-19 03:18:26 +08:00
sakurw
c276b700fa Update manual_ja.txt (#880) 2023-04-19 03:18:11 +08:00
MrZ_26
98f73aa4c0 修改更新历史 2023-04-18 00:16:23 +08:00
MrZ_26
1db854618e 效率40行和无尽模式显示的攻击数格式改为整数 2023-04-18 00:14:46 +08:00
user670
940a1bc3f8 Update manual_en.txt (#876)
fix typo
2023-04-07 16:37:22 +08:00
Squishy (C6H12O6+NaCl+H2O)
7463dd96dc VIetnamese translation update (#878)
* Update credit + Some adjustments for some strings
* Fix credit and adjust some strings
2023-04-07 16:35:17 +08:00
MrZ_26
48e96998a9 更新词典中两条新人指引 2023-04-07 14:56:09 +08:00
MrZ_26
95a1b03cc5 防守模式改为缓冲超过一定数量后就不再生成新的攻击 2023-04-06 15:55:32 +08:00
ParticleG
ee4dfa7f51 移除Action Summary 2023-04-03 11:06:42 +08:00
ParticleG
06f403e9d7 删除上传至WeTransfer步骤 2023-04-03 10:40:44 +08:00
Imple Lee
c03f3f727c fix cc move error when spawn is too low (#874) 2023-03-27 12:53:48 +08:00
ShardNguyen
ed4ba1dc38 Update on Vietnamese translation (#869)
* Adjusted consistency of the translation

* added 1 line and replaced tab with space
2023-03-27 12:53:33 +08:00
MrZ_26
9663f8c316 修正TRS的Z块的1→0踢墙表有一个重复坐标 2023-03-21 17:00:41 +08:00
NOT_A_ROBOT
2478df1242 Fix Classic Lunatic level curve (#870)
now it starts at 100 lines instead of 10. I have no idea why I did it like that back then...
2023-03-19 17:54:23 +08:00
user670
1b54dd3b90 Add Notris Foes URL to en and ja dict (#867) 2023-03-10 17:23:04 +08:00
user670
001014c70e Update dict_ja.lua (#866)
Fix typo with "patreon"
2023-02-28 15:08:13 +08:00
MrZ_26
1a444a9e98 更新赞助名单和版本号 2023-02-28 12:23:39 +08:00
MrZ_26
d5397333d5 整理代码
框架跟进,修复游戏中报错时在错误场景失去焦点会触发暂停
2023-02-28 12:21:37 +08:00
user670
e1001c74c5 Bust out a few outdated teatube links in dictionary (#861) 2023-02-28 12:10:45 +08:00
ParticleG
5f664c04d6 修复Windows CI 2023-02-23 20:15:18 +08:00
ParticleG
525fa4c25e 获取transfer时增加重试功能 2023-02-23 17:58:47 +08:00
MrZ_26
f513760153 更新赞助名单 2023-02-23 02:01:47 +08:00
Particle_G
5faa929bb0 Merge pull request #862 from 26F-Studio/ci-ios-test
Fix portrait issue by removing `W.fullscreen` config in conf.lua
2023-02-21 15:53:16 +08:00
ParticleG
5c4557a7b7 - Re-enable other platforms' CI 2023-02-21 15:08:28 +08:00
ParticleG
69a84c035e - Remove trailing spaces 2023-02-21 14:54:28 +08:00
ParticleG
f8277e1c8a - Revert changes in SETTING table
- Use exclusive fullscreen on mobile devices
2023-02-21 14:37:58 +08:00
ParticleG
48f3d293bd - Try fix iOS portrait issue 2023-02-21 14:09:44 +08:00
ParticleG
00bf828ef4 - Try fix iOS portrait issue 2023-02-21 12:16:02 +08:00
ParticleG
d1cef7ed84 - Try fix iOS portrait issue 2023-02-21 11:54:58 +08:00
ParticleG
17bb8dbe6d - Try fix iOS portrait issue 2023-02-21 11:39:23 +08:00
ParticleG
6166c03eab - Try fix iOS portrait mode 2023-02-21 11:19:17 +08:00
ParticleG
303f32f5b2 - Try ios CI at main 2023-02-21 10:40:51 +08:00
sakurw
f7e4d7b30d Update lang_ja.lua (#860) 2023-02-20 14:55:29 +08:00
user670
f2957dff7b User670 20230216 en dict edit (#857) 2023-02-20 14:55:13 +08:00
MrZ_26
cadbe38a8f 再微调竖屏模式布局相关 2023-02-20 14:49:11 +08:00
MrZ_26
e55d117371 英文词典补充加加的连续pc教程 2023-02-16 10:03:47 +08:00
MrZ_26
1f3d8a212b 修改日文词典里加加的id 2023-02-15 18:14:53 +08:00
MrZ_26
035f30d7e1 再修竖屏模式ui位置(刚刚有个变量写错地方) 2023-02-15 16:13:10 +08:00
user670
3202aa18b1 Various dictionary fixes (#856) 2023-02-15 16:06:18 +08:00
sakurw
0c5d2bdf1a Update dict_ja.lua (#855)
* Update dict_ja.lua

* Update dict_ja.lua

* Update dict_ja.lua
2023-02-15 16:03:40 +08:00
ShardNguyen
db25475c21 Update Vietnamese Translation (#852)
* Adjusted consistency of the translation

* added 1 line and replaced tab with space
2023-02-15 16:01:44 +08:00
MrZ_26
11b1c23be0 竖屏模式下暂停/重开按钮和模式信息挪到被巨大化的玩家上面 2023-02-15 16:00:51 +08:00
MrZ_26
5b1eef890d 词典新增center和partial词条,日语待翻 2023-02-10 17:18:10 +08:00
MrZ_26
3a3d062e5c 版本推进 2023-02-09 04:04:22 +08:00
C₂₉H₂₅N₃O₅
2ee9ed237f Added Zundamon voicepack (#846) 2023-02-09 03:55:10 +08:00
MrFaq2018
9159661945 Update lang_es.lua (#850) 2023-02-09 03:54:32 +08:00
MrZ_26
0efd2c8044 开启竖屏选项时1P玩家强行放大至两倍 2023-02-09 03:51:44 +08:00
MrZ_26
0aaa5822fb 更新翻译人员列表 2023-02-09 03:37:16 +08:00
MrZ_26
2b258aeaed 修复团队战结束判定错误 2023-02-09 03:33:12 +08:00
ShardNguyen
0d7a80f2b5 Vietnamese Translation (#835) 2023-02-09 03:15:43 +08:00
MrZ_26
d433d98c04 更新一个中文tip和赞助名单 2023-02-06 11:18:55 +08:00
MrZ_26
180dc12460 删除一小段无效代码 2023-02-02 15:28:17 +08:00
MrZ_26
dd1d0b4126 删除关于成就系统的tip #841 2023-01-28 00:17:32 +08:00
MrZ_26
f1517fad1a 模式地图界面按f2开关显示网格(方便看位置) close #827 2023-01-25 03:21:30 +08:00
sakurw
62ed279f07 Update lang_ja.lua (#840) 2023-01-25 03:00:41 +08:00
MrZ_26
6925d59f87 修复手动登录失败后还会多余地执行一次去login场景 2023-01-25 02:54:18 +08:00
332 changed files with 8377 additions and 2890 deletions

31
.editorconfig Normal file
View File

@@ -0,0 +1,31 @@
# EmmyLuaCodeStyle
[*.lua]
max_line_length = 26000
indent_style = space
insert_final_newline = true
space_around_table_field_list = false
space_before_attribute = false
space_before_function_call_open_parenthesis = false
space_before_closure_open_parenthesis = false
space_before_function_call_single_arg = false
space_before_open_square_bracket = false
space_inside_function_call_parentheses = false
space_inside_function_param_list_parentheses = false
space_inside_square_brackets = false
space_around_table_append_operator = false
space_before_inline_comment = false
space_around_math_operator = false
space_around_logical_operator = false
space_around_assign_operator = false
space_after_comma = false
space_after_comma_in_for_statement = false
space_around_concat_operator = false
align_call_args = false
align_function_params = false
align_continuous_assign_statement = true
align_continuous_rect_table_field = true
align_if_branch = false
align_array_table = true
ignore_spaces_inside_function_call = true
line_space_after_function_statement = keep
trailing_table_separator = smart

View File

@@ -3,7 +3,7 @@ description: 'download cc into specific dir'
inputs:
tag:
required: false
default: "11.4"
default: "11.4.2"
platform:
required: true
dir:

View File

@@ -8,7 +8,7 @@ index c1932555..552e432e 100644
**/
-void vibrate();
+void vibrate(const double seconds);
/**
* Enable mix mode (e.g. with background music apps) and playback with a muted device.
diff --git a/src/common/ios.mm b/src/common/ios.mm
@@ -18,16 +18,16 @@ index 7730991e..4ba8e708 100644
@@ -36,6 +36,8 @@
#include <SDL_video.h>
#include <SDL_syswm.h>
+#include <sys/utsname.h>
+
static NSArray *getLovesInDocuments();
static bool deleteFileInDocuments(NSString *filename);
@@ -391,10 +393,40 @@ std::string getExecutablePath()
}
}
-void vibrate()
+void vibrate(const double seconds)
{
@@ -73,7 +73,7 @@ index c8af8596..ae7a5e32 100644
@@ -140,6 +140,10 @@ enum DoneAction
DONE_RESTART,
};
+extern "C" {
+ int luaopen_CCloader(lua_State *L);
+}
@@ -84,7 +84,7 @@ index c8af8596..ae7a5e32 100644
@@ -158,6 +162,9 @@ static DoneAction runlove(int argc, char **argv, int &retval)
lua_State *L = luaL_newstate();
luaL_openlibs(L);
+ // Init CCloader
+ luaopen_CCloader(L);
+

BIN
.github/build/web/favicon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

288
.github/build/web/game.js vendored Normal file
View File

@@ -0,0 +1,288 @@
var Module;
if (typeof Module === 'undefined') Module = eval('(function() { try { return Module || {} } catch(e) { return {} } })()');
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
Module.finishedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
var PACKAGE_PATH;
if (typeof window === 'object') {
PACKAGE_PATH = window['encodeURIComponent'](window.location.pathname.toString().substring(0, window.location.pathname.toString().lastIndexOf('/')) + '/');
} else if (typeof location !== 'undefined') {
// worker
PACKAGE_PATH = encodeURIComponent(location.pathname.toString().substring(0, location.pathname.toString().lastIndexOf('/')) + '/');
} else {
throw 'using preloaded data can only be done on a web page or in a web worker';
}
var PACKAGE_NAME = 'game.data';
var REMOTE_PACKAGE_BASE = 'game.data';
if (typeof Module['locateFilePackage'] === 'function' && !Module['locateFile']) {
Module['locateFile'] = Module['locateFilePackage'];
Module.printErr('warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)');
}
var REMOTE_PACKAGE_NAME = typeof Module['locateFile'] === 'function' ?
Module['locateFile'](REMOTE_PACKAGE_BASE) :
((Module['filePackagePrefixURL'] || '') + REMOTE_PACKAGE_BASE);
var REMOTE_PACKAGE_SIZE = metadata.remote_package_size;
var PACKAGE_UUID = metadata.package_uuid;
function fetchRemotePackage(packageName, packageSize, callback, errback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', packageName, true);
xhr.responseType = 'arraybuffer';
xhr.onprogress = function(event) {
var url = packageName;
var size = packageSize;
if (event.total) size = event.total;
if (event.loaded) {
if (!xhr.addedTotal) {
xhr.addedTotal = true;
if (!Module.dataFileDownloads) Module.dataFileDownloads = {};
Module.dataFileDownloads[url] = {
loaded: event.loaded,
total: size
};
} else {
Module.dataFileDownloads[url].loaded = event.loaded;
}
var total = 0;
var loaded = 0;
var num = 0;
for (var download in Module.dataFileDownloads) {
var data = Module.dataFileDownloads[download];
total += data.total;
loaded += data.loaded;
num++;
}
total = Math.ceil(total * Module.expectedDataFileDownloads/num);
if (Module['setStatus']) Module['setStatus']('Downloading data... (' + loaded + '/' + total + ')');
} else if (!Module.dataFileDownloads) {
if (Module['setStatus']) Module['setStatus']('Downloading data...');
}
};
xhr.onerror = function(event) {
throw new Error("NetworkError for: " + packageName);
}
xhr.onload = function(event) {
if (xhr.status == 200 || xhr.status == 304 || xhr.status == 206 || (xhr.status == 0 && xhr.response)) { // file URLs can return 0
var packageData = xhr.response;
callback(packageData);
} else {
throw new Error(xhr.statusText + " : " + xhr.responseURL);
}
};
xhr.send(null);
};
function handleError(error) {
console.error('package error:', error);
};
function runWithFS() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
function DataRequest(start, end, crunched, audio) {
this.start = start;
this.end = end;
this.crunched = crunched;
this.audio = audio;
}
DataRequest.prototype = {
requests: {},
open: function(mode, name) {
this.name = name;
this.requests[name] = this;
Module['addRunDependency']('fp ' + this.name);
},
send: function() {},
onload: function() {
var byteArray = this.byteArray.subarray(this.start, this.end);
this.finish(byteArray);
},
finish: function(byteArray) {
var that = this;
Module['FS_createDataFile'](this.name, null, byteArray, true, true, true); // canOwn this data in the filesystem, it is a slide into the heap that will never change
Module['removeRunDependency']('fp ' + that.name);
this.requests[this.name] = null;
}
};
var files = metadata.files;
for (i = 0; i < files.length; ++i) {
new DataRequest(files[i].start, files[i].end, files[i].crunched, files[i].audio).open('GET', files[i].filename);
}
var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
var IDB_RO = "readonly";
var IDB_RW = "readwrite";
var DB_NAME = "EM_PRELOAD_CACHE";
var DB_VERSION = 1;
var METADATA_STORE_NAME = 'METADATA';
var PACKAGE_STORE_NAME = 'PACKAGES';
function openDatabase(callback, errback) {
try {
var openRequest = indexedDB.open(DB_NAME, DB_VERSION);
} catch (e) {
return errback(e);
}
openRequest.onupgradeneeded = function(event) {
var db = event.target.result;
if(db.objectStoreNames.contains(PACKAGE_STORE_NAME)) {
db.deleteObjectStore(PACKAGE_STORE_NAME);
}
var packages = db.createObjectStore(PACKAGE_STORE_NAME);
if(db.objectStoreNames.contains(METADATA_STORE_NAME)) {
db.deleteObjectStore(METADATA_STORE_NAME);
}
var metadata = db.createObjectStore(METADATA_STORE_NAME);
};
openRequest.onsuccess = function(event) {
var db = event.target.result;
callback(db);
};
openRequest.onerror = function(error) {
errback(error);
};
};
/* Check if there's a cached package, and if so whether it's the latest available */
function checkCachedPackage(db, packageName, callback, errback) {
var transaction = db.transaction([METADATA_STORE_NAME], IDB_RO);
var metadata = transaction.objectStore(METADATA_STORE_NAME);
var getRequest = metadata.get("metadata/" + packageName);
getRequest.onsuccess = function(event) {
var result = event.target.result;
if (!result) {
return callback(false);
} else {
return callback(PACKAGE_UUID === result.uuid);
}
};
getRequest.onerror = function(error) {
errback(error);
};
};
function fetchCachedPackage(db, packageName, callback, errback) {
var transaction = db.transaction([PACKAGE_STORE_NAME], IDB_RO);
var packages = transaction.objectStore(PACKAGE_STORE_NAME);
var getRequest = packages.get("package/" + packageName);
getRequest.onsuccess = function(event) {
var result = event.target.result;
callback(result);
};
getRequest.onerror = function(error) {
errback(error);
};
};
function cacheRemotePackage(db, packageName, packageData, packageMeta, callback, errback) {
var transaction_packages = db.transaction([PACKAGE_STORE_NAME], IDB_RW);
var packages = transaction_packages.objectStore(PACKAGE_STORE_NAME);
var putPackageRequest = packages.put(packageData, "package/" + packageName);
putPackageRequest.onsuccess = function(event) {
var transaction_metadata = db.transaction([METADATA_STORE_NAME], IDB_RW);
var metadata = transaction_metadata.objectStore(METADATA_STORE_NAME);
var putMetadataRequest = metadata.put(packageMeta, "metadata/" + packageName);
putMetadataRequest.onsuccess = function(event) {
callback(packageData);
};
putMetadataRequest.onerror = function(error) {
errback(error);
};
};
putPackageRequest.onerror = function(error) {
errback(error);
};
};
function processPackageData(arrayBuffer) {
Module.finishedDataFileDownloads++;
assert(arrayBuffer, 'Loading data file failed.');
assert(arrayBuffer instanceof ArrayBuffer, 'bad input to processPackageData');
var byteArray = new Uint8Array(arrayBuffer);
var curr;
// copy the entire loaded file into a spot in the heap. Files will refer to slices in that. They cannot be freed though
// (we may be allocating before malloc is ready, during startup).
if (Module['SPLIT_MEMORY']) Module.printErr('warning: you should run the file packager with --no-heap-copy when SPLIT_MEMORY is used, otherwise copying into the heap may fail due to the splitting');
var ptr = Module['getMemory'](byteArray.length);
Module['HEAPU8'].set(byteArray, ptr);
DataRequest.prototype.byteArray = Module['HEAPU8'].subarray(ptr, ptr+byteArray.length);
var files = metadata.files;
for (i = 0; i < files.length; ++i) {
DataRequest.prototype.requests[files[i].filename].onload();
}
Module['removeRunDependency']('datafile_game.data');
};
Module['addRunDependency']('datafile_game.data');
if (!Module.preloadResults) Module.preloadResults = {};
function preloadFallback(error) {
console.error(error);
console.error('falling back to default preload behavior');
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE, processPackageData, handleError);
};
openDatabase(
function(db) {
checkCachedPackage(db, PACKAGE_PATH + PACKAGE_NAME,
function(useCached) {
Module.preloadResults[PACKAGE_NAME] = {fromCache: useCached};
if (useCached) {
console.info('loading ' + PACKAGE_NAME + ' from cache');
fetchCachedPackage(db, PACKAGE_PATH + PACKAGE_NAME, processPackageData, preloadFallback);
} else {
console.info('loading ' + PACKAGE_NAME + ' from remote');
fetchRemotePackage(REMOTE_PACKAGE_NAME, REMOTE_PACKAGE_SIZE,
function(packageData) {
cacheRemotePackage(db, PACKAGE_PATH + PACKAGE_NAME, packageData, {uuid:PACKAGE_UUID}, processPackageData,
function(error) {
console.error(error);
processPackageData(packageData);
});
}
, preloadFallback);
}
}
, preloadFallback);
}
, preloadFallback);
if (Module['setStatus']) Module['setStatus']('Downloading...');
}
if (Module['calledRun']) {
runWithFS();
} else {
if (!Module['preRun']) Module['preRun'] = [];
Module["preRun"].push(runWithFS); // FS is not initialized yet, wait for it
}
}
loadPackage({"package_uuid":"80826f15-f924-4428-a8c4-e984743417c6","remote_package_size":62246034,"files":[{"filename":"/game.love","crunched":0,"start":0,"end":62246034,"audio":false}]});
})();

111
.github/build/web/index.html vendored Normal file
View File

@@ -0,0 +1,111 @@
<!doctype html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, minimum-scale=1, maximum-scale=1">
<title>Techmino</title>
<!-- Load custom style sheet -->
<link rel="stylesheet" type="text/css" href="theme/love.css">
</head>
<body>
<center>
<div>
<h1>Techmino</h1>
<canvas id="loadingCanvas" oncontextmenu="event.preventDefault()" width="800" height="600"></canvas>
<canvas id="canvas" oncontextmenu="event.preventDefault()"></canvas>
</div>
</center>
<script type='text/javascript'>
function goFullScreen(){
var canvas = document.getElementById("canvas");
if(canvas.requestFullScreen)
canvas.requestFullScreen();
else if(canvas.webkitRequestFullScreen)
canvas.webkitRequestFullScreen();
else if(canvas.mozRequestFullScreen)
canvas.mozRequestFullScreen();
}
function FullScreenHook(){
var canvas = document.getElementById("canvas");
canvas.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
canvas.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
}
var loadingContext = document.getElementById('loadingCanvas').getContext('2d');
function drawLoadingText(text) {
var canvas = loadingContext.canvas;
loadingContext.fillStyle = "rgb(142, 195, 227)";
loadingContext.fillRect(0, 0, canvas.scrollWidth, canvas.scrollHeight);
loadingContext.font = '2em arial';
loadingContext.textAlign = 'center'
loadingContext.fillStyle = "rgb( 11, 86, 117 )";
loadingContext.fillText(text, canvas.scrollWidth / 2, canvas.scrollHeight / 2);
loadingContext.fillText("Powered By Emscripten.", canvas.scrollWidth / 2, canvas.scrollHeight / 4);
loadingContext.fillText("Powered By LÖVE.", canvas.scrollWidth / 2, canvas.scrollHeight / 4 * 3);
}
window.onload = function () { window.focus(); };
window.onclick = function () { window.focus(); };
window.addEventListener("keydown", function(e) {
// space and arrow keys
if([32, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
e.preventDefault();
}
}, false);
var Module = {
arguments: ["./game.love"],
INITIAL_MEMORY: 536870912,
printErr: console.error.bind(console),
canvas: (function() {
var canvas = document.getElementById('canvas');
// As a default initial behavior, pop up an alert when webgl context is lost. To make your
// application robust, you may want to override this behavior before shipping!
// See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);
return canvas;
})(),
setStatus: function(text) {
if (text) {
drawLoadingText(text);
} else if (Module.remainingDependencies === 0) {
document.getElementById('loadingCanvas').style.display = 'none';
document.getElementById('canvas').style.visibility = 'visible';
}
},
totalDependencies: 0,
remainingDependencies: 0,
monitorRunDependencies: function(left) {
this.remainingDependencies = left;
this.totalDependencies = Math.max(this.totalDependencies, left);
Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
}
};
Module.setStatus('Downloading...');
window.onerror = function(event) {
// TODO: do not warn on ok events like simulating an infinite loop or exitStatus
Module.setStatus('Exception thrown, see JavaScript console');
Module.setStatus = function(text) {
if (text) Module.printErr('[post-exception status] ' + text);
};
};
var applicationLoad = function(e) {
Love(Module);
}
</script>
<script type="text/javascript" src="game.js"></script>
<script async type="text/javascript" src="love.js" onload="applicationLoad(this)"></script>
<footer>
<p>Built with <a href="https://github.com/Davidobot/love.js">love.js</a> <button onclick="goFullScreen();">Go Fullscreen</button><br>Hint: Reload the page if screen is blank</p>
</footer>
</body>
</html>

22
.github/build/web/love.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
.github/build/web/love.wasm vendored Normal file

Binary file not shown.

BIN
.github/build/web/theme/bg.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

49
.github/build/web/theme/love.css vendored Normal file
View File

@@ -0,0 +1,49 @@
* {
box-sizing: border-box;
}
h1 {
font-family: arial;
color: rgb( 11, 86, 117 );
}
body {
background-image: url(bg.png);
background-repeat: no-repeat;
font-family: arial;
margin: 0;
padding: none;
background-color: rgb( 154, 205, 237 );
color: rgb( 28, 78, 104 );
}
footer {
font-family: arial;
font-size: 12px;
padding-left: 10px;
position:absolute;
bottom: 0;
width: 100%;
}
/* Links */
a {
text-decoration: none;
}
a:link {
color: rgb( 233, 73, 154 );
}
a:visited {
color: rgb( 110, 30, 71 );
}
a:hover {
color: rgb( 252, 207, 230 );
}
/* the canvas *must not* have any border or padding, or mouse coords will be wrong */
#canvas {
padding-right: 0;
display: block;
border: 0px none;
visibility: hidden;
}

View File

@@ -70,8 +70,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -128,20 +126,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
curl -sL --retry 5 https://raw.githubusercontent.com/Mikubill/transfer/master/install.sh | sh
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ env.OUTPUT_FOLDER }}/${{ steps.process-app-name.outputs.product-name }}.love 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
auto-test:
runs-on: ubuntu-latest
@@ -163,8 +147,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -230,20 +212,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
curl -sL --retry 5 https://raw.githubusercontent.com/Mikubill/transfer/master/install.sh | sh
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
build-ios:
runs-on: macos-latest
@@ -252,8 +220,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -327,20 +293,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
wget -qO- https://github.com/Mikubill/transfer/releases/download/v0.4.17/transfer_0.4.17_darwin_amd64.tar.gz | tar xvz
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
build-linux:
runs-on: ubuntu-latest
@@ -348,8 +300,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -426,20 +376,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
curl -sL --retry 5 https://raw.githubusercontent.com/Mikubill/transfer/master/install.sh | sh
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
build-macos-appstore:
runs-on: macos-latest
@@ -448,8 +384,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -526,20 +460,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
wget -qO- https://github.com/Mikubill/transfer/releases/download/v0.4.17/transfer_0.4.17_darwin_amd64.tar.gz | tar xvz
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
build-macos-portable:
runs-on: macos-latest
@@ -548,8 +468,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -638,20 +556,34 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
shell: bash
run: |
wget -qO- https://github.com/Mikubill/transfer/releases/download/v0.4.17/transfer_0.4.17_darwin_amd64.tar.gz | tar xvz
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
build-web:
runs-on: ubuntu-latest
needs: [get-info, build-core, auto-test]
steps:
- uses: actions/checkout@v3
with:
max_attempts: 5
retry_wait_seconds: 10
timeout_minutes: 5
command: |
./transfer wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
echo "download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $GITHUB_OUTPUT
submodules: recursive
- name: Download core love package
uses: actions/download-artifact@v3
with:
name: ${{ env.CORE_LOVE_ARTIFACT_NAME }}
- name: Move core love package
run: |
mv ${{ env.CORE_LOVE_PACKAGE_PATH }} ./.github/build/web/game.data
- name: Deploy to GitHub Pages
uses: crazy-max/ghaction-github-pages@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
build_dir: ./.github/build/web/
keep_history: false
target_branch: web-dev
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ needs.get-info.outputs.base-name }}_Web_PWA
path: ./.github/build/web/
build-windows:
runs-on: windows-latest
@@ -659,8 +591,6 @@ jobs:
env:
OUTPUT_FOLDER: ./build
RELEASE_FOLDER: ./release
outputs:
download-url: ${{ steps.transfer.outputs.download-url }}
steps:
- uses: actions/checkout@v3
with:
@@ -744,25 +674,6 @@ jobs:
body: ${{ needs.get-info.outputs.update-note }}
name: ${{ needs.get-info.outputs.update-title }}
prerelease: ${{ startsWith(github.ref, 'refs/tags/pre') }}
- name: Get transfer
env:
TEMP_PATH: ./temp.zip
shell: bash
run: |
curl -sL --retry 5 https://github.com/Mikubill/transfer/releases/download/v0.4.17/transfer_0.4.17_windows_amd64.zip -o ${{ env.TEMP_PATH }}
7z x ${{ env.TEMP_PATH }} -o./
rm ${{ env.TEMP_PATH }}
- name: Upload to WeTransfer
id: transfer
uses: nick-fields/retry@v2
with:
max_attempts: 5
retry_wait_seconds: 10
shell: pwsh
timeout_minutes: 5
command: |
./transfer.exe wet -s -p 16 --no-progress ${{ steps.build-packages.outputs.package-paths }} 2>&1>./wetransfer.log
"download-url=$(cat ./wetransfer.log | grep https | cut -f3 -d" ")" >> $env:GITHUB_OUTPUT
post-build:
runs-on: ubuntu-latest
@@ -777,45 +688,19 @@ jobs:
build-linux,
build-macos-appstore,
build-macos-portable,
build-web,
build-windows,
]
env:
ACTION_TYPE: ${{ fromJSON('[["Development", "Pre-release"], ["Release", "Release"]]')[startsWith(github.ref, 'refs/tags/v')][startsWith(github.ref, 'refs/tags/pre')] }}
steps:
- uses: actions/checkout@v3
- name: Cleanup
uses: geekyeggo/delete-artifact@v2
with:
name: ${{ env.CORE_LOVE_ARTIFACT_NAME }}
- name: Display summary
shell: bash
run: |
echo "# Summary" >> $GITHUB_STEP_SUMMARY
echo "## Version: ${{ needs.get-info.outputs.version-string }}" >> $GITHUB_STEP_SUMMARY
echo "## Package Name: ${{ needs.get-info.outputs.base-name }}" >> $GITHUB_STEP_SUMMARY
echo "## Download links: " >> $GITHUB_STEP_SUMMARY
- name: Display download links
shell: python3 {0}
run: |
import os
with open(os.getenv('GITHUB_STEP_SUMMARY'), 'a') as f:
if "${{ needs.build-core.result }}" == "success":
f.write("- Bare love packages: [WeTransfer](${{ needs.build-core.outputs.download-url }})\n")
if "${{ needs.build-android.result }}" == "success":
f.write("- Android packages: [WeTransfer](${{ needs.build-android.outputs.download-url }})\n")
if "${{ needs.build-ios.result }}" == "success":
f.write("- iOS packages: [WeTransfer](${{ needs.build-ios.outputs.download-url }})\n")
if "${{ needs.build-linux.result }}" == "success":
f.write("- Linux packages: [WeTransfer](${{ needs.build-linux.outputs.download-url }})\n")
if "${{ needs.build-macos-appstore.result }}" == "success":
f.write("- macOS packages(App Store version): [WeTransfer](${{ needs.build-macos-appstore.outputs.download-url }})\n")
if "${{ needs.build-macos-portable.result }}" == "success":
f.write("- macOS packages(Portable version): [WeTransfer](${{ needs.build-macos-portable.outputs.download-url }})\n")
if "${{ needs.build-windows.result }}" == "success":
f.write("- Windows packages: [WeTransfer](${{ needs.build-windows.outputs.download-url }})\n")
- name: Send Discord message
if: github.event_name != 'pull_request'
uses: Sniddl/discord-commits@v1.5
uses: Sniddl/discord-commits@v1.6
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
message: "Github Actions for **${{ github.repository }}**."
@@ -834,7 +719,6 @@ jobs:
"fields":[
{"name":"Version","value":"${{ needs.get-info.outputs.version-string }}","inline": true},
{"name":"Package Name","value":"${{ needs.get-info.outputs.base-name }}","inline": true},
{"name":"Status","value":"**Automatic Test:** ${{ needs.auto-test.result }}\n**Core:** ${{ needs.build-core.result }}\n**Android:** ${{ needs.build-android.result }}\n**iOS:** ${{ needs.build-ios.result }}\n**Linux:** ${{ needs.build-linux.result }}\n**macOS App Store:** ${{ needs.build-macos-appstore.result }}\n**macOS portable:** ${{ needs.build-macos-portable.result }}\n**Windows:** ${{ needs.build-windows.result }}"},
{"name":"Download Links","value":"**Core:** ${{ needs.build-core.outputs.download-url}}\n**Android:** ${{ needs.build-android.outputs.download-url }}\n**iOS:** ${{ needs.build-ios.outputs.download-url }}\n**Linux:** ${{ needs.build-linux.outputs.download-url }}\n**macOS App Store:** ${{ needs.build-macos-appstore.outputs.download-url }}\n**macOS portable:** ${{ needs.build-macos-portable.outputs.download-url }}\n**Windows:** ${{ needs.build-windows.outputs.download-url}}"}
{"name":"Status","value":"**Automatic Test:** ${{ needs.auto-test.result }}\n**Core:** ${{ needs.build-core.result }}\n**Android:** ${{ needs.build-android.result }}\n**iOS:** ${{ needs.build-ios.result }}\n**Linux:** ${{ needs.build-linux.result }}\n**macOS App Store:** ${{ needs.build-macos-appstore.result }}\n**macOS portable:** ${{ needs.build-macos-portable.result }}\n**Windows:** ${{ needs.build-windows.result }}"}
]
}'

View File

@@ -1,6 +1,16 @@
SYSTEM=love._os if SYSTEM=='OS X' then SYSTEM='macOS' end
SYSTEM=love._os
if SYSTEM=='OS X' then SYSTEM='macOS' end
MOBILE=SYSTEM=='Android' or SYSTEM=='iOS'
FNNS=SYSTEM:find'\79\83'-- What does FNSF stand for? IDK so don't ask me lol
FNNS=SYSTEM:find'\79\83' -- What does FNSF stand for? IDK so don't ask me lol
if SYSTEM=='Web' then
local oldRead=love.filesystem.read
function love.filesystem.read(name,size)
if love.filesystem.getInfo(name) then
return oldRead(name,size)
end
end
end
function love.conf(t)
local identity='Techmino'
@@ -20,45 +30,13 @@ function love.conf(t)
t.identity=identity -- Saving folder
t.version="11.4"
t.gammacorrect=false
t.appendidentity=true -- Search files in source then in save directory
t.appendidentity=true -- Search files in source then in save directory
t.accelerometerjoystick=false -- Accelerometer=joystick on ios/android
if t.audio then
t.audio.mic=false
t.audio.mixwithsystem=true
end
local W=t.window
W.title="Techmino "..require "version".string
if portrait then
W.width,W.height=720,1280
W.minwidth,W.minheight=360,640
else
W.width,W.height=1280,720
W.minwidth,W.minheight=640,360
end
W.vsync=0 -- Unlimited FPS
W.msaa=msaa -- Multi-sampled antialiasing
W.depth=0 -- Bits/samp of depth buffer
W.stencil=1 -- Bits/samp of stencil buffer
W.display=1 -- Monitor ID
W.highdpi=true -- High-dpi mode for the window on a Retina display
W.x,W.y=nil,nil -- Position of the window
if fs.getInfo('media/image/icon.png') then
W.icon='media/image/icon.png'
end
if MOBILE then
W.borderless=true
W.resizable=false
W.fullscreen=true
else
W.borderless=false
W.resizable=true
W.fullscreen=false
end
local M=t.modules
M.window,M.system,M.event,M.thread=true,true,true,true
M.timer,M.math,M.data=true,true,true
@@ -66,4 +44,28 @@ function love.conf(t)
M.graphics,M.font,M.image=true,true,true
M.mouse,M.touch,M.keyboard,M.joystick=true,true,true,true
M.physics=false
local W=t.window
W.vsync=0 -- Unlimited FPS
W.msaa=msaa -- Multi-sampled antialiasing
W.depth=0 -- Bits/samp of depth buffer
W.stencil=1 -- Bits/samp of stencil buffer
W.display=1 -- Monitor ID
W.highdpi=true -- High-dpi mode for the window on a Retina display
W.x,W.y=nil,nil -- Position of the window
W.borderless=MOBILE -- Display window frame
W.resizable=not MOBILE -- Whether window is resizable
W.fullscreentype=MOBILE and "exclusive" or "desktop" -- Fullscreen type
if portrait then
W.width,W.height=720,1280
W.minwidth,W.minheight=360,640
else
W.width,W.height=1280,720
W.minwidth,W.minheight=640,360
end
W.title="Techmino "..require"version".string -- Window title
if fs.getInfo('media/image/icon.png') then
W.icon='media/image/icon.png'
end
end

247
main.lua
View File

@@ -10,10 +10,8 @@
Instructions:
1. I made a framework called Zframework, *most* code in Zframework are not directly relevant to game;
2. "xxx" are texts for reading by player, 'xxx' are string values just used in program;
3. Some goto statement are used for better performance. All goto-labes have detailed names so don't be afraid;
4. Except "gcinfo" function of lua itself, other "gc" are short for "graphics";
]]--
3. Except "gcinfo" function of lua itself, other "gc" are short for "graphics";
]]
-- Var leak check
-- setmetatable(_G,{__newindex=function(self,k,v) print('>>'..k..string.rep(" ",26-#k),debug.traceback():match("\n.-\n\t(.-): "))rawset(self,k,v) end})
@@ -25,7 +23,7 @@ TIME=love.timer.getTime
-- Global Vars & Settings
SFXPACKS={'chiptune'}
VOCPACKS={'miya','mono','xiaoya','miku'}
VOCPACKS={'miya','mono','xiaoya','flore','miku','zundamon'}
FIRSTLAUNCH=false
DAILYLAUNCH=false
@@ -47,7 +45,7 @@ FONT.load{
FONT.setDefault('norm')
FONT.setFallback('norm')
SCR.setSize(1280,720)-- Initialize Screen size
SCR.setSize(1280,720) -- Initialize Screen size
BGM.setMaxSources(5)
VOC.setDiversion(.62)
@@ -102,30 +100,32 @@ CHAR=require'parts.char'
require'parts.gameTables'
require'parts.gameFuncs'
THEME= require'parts.theme'
LINE= require'parts.line'
DATA= require'parts.data'
THEME =require'parts.theme'
LINE =require'parts.line'
DATA =require'parts.data'
TEXTURE= require'parts.texture'
SKIN= require'parts.skin'
USERS= require'parts.users'
NET= require'parts.net'
VK= require'parts.virtualKey'
BOT= require'parts.bot'
RSlist= require'parts.RSlist'; DSCP=RSlist.TRS.centerPos
PLY= require'parts.player'
NETPLY= require'parts.netPlayer'
MODES= require'parts.modes'
TEXTURE=require'parts.texture'
SKIN =require'parts.skin'
USERS =require'parts.users'
NET =require'parts.net'
VK =require'parts.virtualKey'
BOT =require'parts.bot'
RSlist =require'parts.RSlist'; DSCP=RSlist.TRS.centerPos
PLY =require'parts.player'
NETPLY =require'parts.netPlayer'
MODES =require'parts.modes'
setmetatable(TEXTURE,{__index=function(self,k)
MES.new('warn',"No texture called: "..k)
self[k]=PAPER
return self[k]
end})
setmetatable(TEXTURE,{
__index=function(self,k)
MES.new('warn',"No texture called: "..k)
self[k]=PAPER
return self[k]
end,
})
-- Load mode files
for i=1,#MODES do
local m=MODES[i]-- Mode template
local m=MODES[i] -- Mode template
if FILE.isSafe('parts/modes/'..m.name) then
TABLE.complete(require('parts.modes.'..m.name),MODES[i])
MODES[m.name],MODES[i]=MODES[i]
@@ -145,7 +145,7 @@ end
table.insert(_LOADTIMELIST_,("Load Modules: %.3fs"):format(TIME()-_LOADTIME_))
-- Initialize Zframework
do-- Z.setCursor
do -- Z.setCursor
local normImg=GC.DO{16,16,
{'fCirc',8,8,4},
{'setCL',1,1,1,.7},
@@ -197,12 +197,12 @@ Z.setOnGlobalKey('f11',function()
end)
Z.setVersionText(VERSION.string)
Z.setDebugInfo{
{"Cache",gcinfo},
{"Tasks",TASK.getCount},
{"Cache", gcinfo},
{"Tasks", TASK.getCount},
{"Voices",VOC.getQueueCount},
{"Audios",love.audio.getSourceCount},
}
do-- Z.setOnFocus
do -- Z.setOnFocus
local function task_autoSoundOff()
while true do
coroutine.yield()
@@ -271,7 +271,9 @@ IMG.init{
monoCH='media/image/characters/mono.png',
xiaoyaCH='media/image/characters/xiaoya.png',
xiaoyaOmino='media/image/characters/xiaoya_Omino.png',
floreCH='media/image/characters/flore.png',
mikuCH='media/image/characters/miku.png',
zundamonCH='media/image/characters/zundamon.png',
z={
character='media/image/characters/z_character.png',
screen1='media/image/characters/z_screen1.png',
@@ -294,46 +296,46 @@ IMG.init{
},
}
SKIN.load{
{name="crystal_scf",path='media/image/skin/crystal_scf.png'},
{name="matte_mrz",path='media/image/skin/matte_mrz.png'},
{name="shiny_chno",path='media/image/skin/shiny_chno.png'},
{name="contrast_mrz",path='media/image/skin/contrast_mrz.png'},
{name="polkadots_scf",path='media/image/skin/polkadots_scf.png'},
{name="toy_scf",path='media/image/skin/toy_scf.png'},
{name="smooth_mrz",path='media/image/skin/smooth_mrz.png'},
{name="simple_scf",path='media/image/skin/simple_scf.png'},
{name="glass_scf",path='media/image/skin/glass_scf.png'},
{name="penta_scf",path='media/image/skin/penta_scf.png'},
{name="bubble_scf",path='media/image/skin/bubble_scf.png'},
{name="minoes_scf",path='media/image/skin/minoes_scf.png'},
{name="pure_mrz",path='media/image/skin/pure_mrz.png'},
{name="bright_scf",path='media/image/skin/bright_scf.png'},
{name="glow_mrz",path='media/image/skin/glow_mrz.png'},
{name="plastic_mrz",path='media/image/skin/plastic_mrz.png'},
{name="paper_mrz",path='media/image/skin/paper_mrz.png'},
{name="yinyang_scf",path='media/image/skin/yinyang_scf.png'},
{name="cartooncup_earety",path='media/image/skin/cartooncup_earety.png'},
{name="jelly_miya",path='media/image/skin/jelly_miya.png'},
{name="crystal_scf", path='media/image/skin/crystal_scf.png'},
{name="matte_mrz", path='media/image/skin/matte_mrz.png'},
{name="shiny_chno", path='media/image/skin/shiny_chno.png'},
{name="contrast_mrz", path='media/image/skin/contrast_mrz.png'},
{name="polkadots_scf", path='media/image/skin/polkadots_scf.png'},
{name="toy_scf", path='media/image/skin/toy_scf.png'},
{name="smooth_mrz", path='media/image/skin/smooth_mrz.png'},
{name="simple_scf", path='media/image/skin/simple_scf.png'},
{name="glass_scf", path='media/image/skin/glass_scf.png'},
{name="penta_scf", path='media/image/skin/penta_scf.png'},
{name="bubble_scf", path='media/image/skin/bubble_scf.png'},
{name="minoes_scf", path='media/image/skin/minoes_scf.png'},
{name="pure_mrz", path='media/image/skin/pure_mrz.png'},
{name="bright_scf", path='media/image/skin/bright_scf.png'},
{name="glow_mrz", path='media/image/skin/glow_mrz.png'},
{name="plastic_mrz", path='media/image/skin/plastic_mrz.png'},
{name="paper_mrz", path='media/image/skin/paper_mrz.png'},
{name="yinyang_scf", path='media/image/skin/yinyang_scf.png'},
{name="cartooncup_earety", path='media/image/skin/cartooncup_earety.png'},
{name="jelly_miya", path='media/image/skin/jelly_miya.png'},
{name="guidetris_xmiao_lusisi",path='media/image/skin/guidetris_xmiao_lusisi.png'},
{name="brick_notypey",path='media/image/skin/brick_notypey.png'},
{name="gem_notypey",path='media/image/skin/gem_notypey.png'},
{name="classic",path='media/image/skin/classic_unknown.png'},
{name="ball_shaw",path='media/image/skin/ball_shaw.png'},
{name="retro_notypey",path='media/image/skin/retro_notypey.png'},
{name="pixel_chno",path='media/image/skin/pixel_chno.png'},
{name="pastel_chno",path='media/image/skin/pastel_chno.png'},
{name="letters_chno",path='media/image/skin/letters_chno.png'},
{name="kanji_chno",path='media/image/skin/kanji_chno.png'},
{name="textbone_mrz",path='media/image/skin/textbone_mrz.png'},
{name="coloredbone_mrz",path='media/image/skin/coloredbone_mrz.png'},
{name="wtf",path='media/image/skin/wtf_mrz.png'},
{name="brick_notypey", path='media/image/skin/brick_notypey.png'},
{name="gem_notypey", path='media/image/skin/gem_notypey.png'},
{name="classic", path='media/image/skin/classic_unknown.png'},
{name="ball_shaw", path='media/image/skin/ball_shaw.png'},
{name="retro_notypey", path='media/image/skin/retro_notypey.png'},
{name="pixel_chno", path='media/image/skin/pixel_chno.png'},
{name="pastel_chno", path='media/image/skin/pastel_chno.png'},
{name="letters_chno", path='media/image/skin/letters_chno.png'},
{name="kanji_chno", path='media/image/skin/kanji_chno.png'},
{name="textbone_mrz", path='media/image/skin/textbone_mrz.png'},
{name="coloredbone_mrz", path='media/image/skin/coloredbone_mrz.png'},
{name="wtf", path='media/image/skin/wtf_mrz.png'},
}
-- Initialize sound libs
SFX.init((function()--[Warning] Not loading files here, just get the list of sound needed
SFX.init((function() --[Warning] Not loading files here, just get the list of sound needed
local L={}
for _,v in next,fs.getDirectoryItems('media/effect/chiptune/') do
if FILE.isSafe('media/effect/chiptune/'..v,"Dangerous file : %SAVE%/media/effect/chiptune/"..v) then
if FILE.isSafe('media/effect/chiptune/'..v) then
table.insert(L,v:sub(1,-5))
end
end
@@ -342,7 +344,7 @@ end)())
BGM.init((function()
local L={}
for _,v in next,fs.getDirectoryItems('media/music') do
if FILE.isSafe('media/music/'..v,"Dangerous file : %SAVE%/media/music/"..v) then
if FILE.isSafe('media/music/'..v) then
L[v:sub(1,-5)]='media/music/'..v
end
end
@@ -350,7 +352,7 @@ BGM.init((function()
end)())
VOC.init{
'zspin','sspin','jspin','lspin','tspin','ospin','ispin','pspin','qspin','fspin','espin','uspin','vspin','wspin','xspin','rspin','yspin','nspin','hspin','cspin',
'single','double','triple','techrash','pentacrash','hexacrash',
'single','double','triple','techrash','pentacrash','hexacrash','heptacrash','octacrash','nonacrash','decacrash','undecacrash','dodecacrash','tridecacrash','tetradecacrash','pentadecacrash','hexadecacrash','heptadecacrash','octadecacrash','nonadecacrash','ultracrash','impossicrash',
'mini','b2b','b3b',
'perfect_clear','half_clear',
'win','lose','bye',
@@ -363,12 +365,12 @@ table.insert(_LOADTIMELIST_,("Initialize Modules: %.3fs"):format(TIME()-_LOADTIM
-- Load settings and statistics
if
not (
pcall(TABLE.cover, loadFile('conf/user', '-json -canSkip') or loadFile('conf/user', '-luaon -canSkip') or{},USER) and
pcall(TABLE.cover, loadFile('conf/unlock', '-json -canSkip') or loadFile('conf/unlock', '-luaon -canSkip') or{},RANKS) and
pcall(TABLE.update,loadFile('conf/settings', '-json -canSkip') or loadFile('conf/settings', '-luaon -canSkip') or{},SETTING) and
pcall(TABLE.coverR,loadFile('conf/data', '-json -canSkip') or loadFile('conf/data', '-luaon -canSkip') or{},STAT) and
pcall(TABLE.cover, loadFile('conf/key', '-json -canSkip') or loadFile('conf/key', '-luaon -canSkip') or{},KEY_MAP) and
pcall(TABLE.cover, loadFile('conf/virtualkey','-json -canSkip') or loadFile('conf/virtualkey','-luaon -canSkip') or{},VK_ORG)
pcall(TABLE.cover, loadFile('conf/user', '-json -canSkip') or loadFile('conf/user', '-luaon -canSkip') or {},USER) and
pcall(TABLE.cover, loadFile('conf/unlock', '-json -canSkip') or loadFile('conf/unlock', '-luaon -canSkip') or {},RANKS) and
pcall(TABLE.update,loadFile('conf/settings', '-json -canSkip') or loadFile('conf/settings', '-luaon -canSkip') or {},SETTING) and
pcall(TABLE.coverR,loadFile('conf/data', '-json -canSkip') or loadFile('conf/data', '-luaon -canSkip') or {},STAT) and
pcall(TABLE.cover, loadFile('conf/key', '-json -canSkip') or loadFile('conf/key', '-luaon -canSkip') or {},KEY_MAP) and
pcall(TABLE.cover, loadFile('conf/virtualkey','-json -canSkip') or loadFile('conf/virtualkey','-luaon -canSkip') or {},VK_ORG)
)
then
MES.new('error',"An error occured during loading, and some data was lost.")
@@ -502,24 +504,27 @@ LANG.init('zh',
ja=require'parts.language.lang_ja',
symbol=require'parts.language.lang_symbol',
zh_code=require'parts.language.lang_zh_code',
vi=require'parts.language.lang_vi',
-- 1. Add language file to LANG folder;
-- 2. Require it;
-- 3. Add a button in parts/scenes/lang.lua;
},
{
block=BLOCK_NAMES
block=BLOCK_NAMES,
},
(function()
local tipMeta={__call=function(L) return L[math.random(#L)] end}
return function(L)
if type(rawget(L,'getTip'))=='table' then setmetatable(L.getTip,tipMeta) end
setmetatable(L,{__index=function(self,k)
local mes="No Text ("..SETTING.locale.."): "..k
LOG(mes)
MES.new('warn',mes)
self[k]="["..k.."]"
return self[k]
end})
setmetatable(L,{
__index=function(self,k)
local mes="No Text ("..SETTING.locale.."): "..k
LOG(mes)
MES.new('warn',mes)
self[k]="["..k.."]"
return self[k]
end,
})
end
end)()
)
@@ -531,7 +536,9 @@ for _,v in next,fs.getDirectoryItems('parts/backgrounds') do
BG.add(name,require('parts.backgrounds.'..name))
end
end
BG.remList('none')BG.remList('gray')BG.remList('custom')
BG.remList('none')
BG.remList('gray')
BG.remList('custom')
-- Load scene files from SOURCE ONLY
for _,v in next,fs.getDirectoryItems('parts/scenes') do
@@ -558,44 +565,51 @@ applySettings()
-- Load replays
for _,fileName in next,fs.getDirectoryItems('replay') do
if fileName:sub(12,12):match("[a-zA-Z]") then
local date,mode,version,player,seed,setting,mod
local fileData=fs.read('replay/'..fileName)
date, fileData=STRING.readLine(fileData)date=date:gsub("[a-zA-Z]","")
mode, fileData=STRING.readLine(fileData)mode=MODE_UPDATE_MAP[mode] or mode
version,fileData=STRING.readLine(fileData)
player, fileData=STRING.readLine(fileData) if player=="Local Player" then player="Stacker" end
local success
success,fileData=pcall(love.data.decompress,'string','zlib',fileData)
if not success then goto BREAK_cannotParse end
seed, fileData=STRING.readLine(fileData)
setting,fileData=STRING.readLine(fileData)setting=JSON.decode(setting)
mod, fileData=STRING.readLine(fileData)mod=JSON.decode(mod)
if
not setting or
not mod or
not mode or
#mode==0
then goto BREAK_cannotParse end
repeat
local date,mode,version,player,seed,setting,mod
local success,fileData=true,fs.read('replay/'..fileName)
date,fileData=STRING.readLine(fileData)
date=date:gsub("[a-zA-Z]","")
mode,fileData=STRING.readLine(fileData)
mode=MODE_UPDATE_MAP[mode] or mode
version,fileData=STRING.readLine(fileData)
player,fileData=STRING.readLine(fileData)
if player=="Local Player" then player="Stacker" end
success,fileData=pcall(love.data.decompress,'string','zlib',fileData)
if not success then break end
seed,fileData=STRING.readLine(fileData)
setting,fileData=STRING.readLine(fileData)
setting=JSON.decode(setting)
mod,fileData=STRING.readLine(fileData)
mod=JSON.decode(mod)
if
not setting or
not mod or
not mode or
#mode==0
then
break
end
fs.remove('replay/'..fileName)
local newName=fileName:sub(1,10)..fileName:sub(15)
fs.write('replay/'..newName,
love.data.compress('string','zlib',
JSON.encode{
date=date,
mode=mode,
version=version,
player=player,
seed=seed,
setting=setting,
mod=mod,
}.."\n"..
fileData
fs.remove('replay/'..fileName)
local newName=fileName:sub(1,10)..fileName:sub(15)
fs.write('replay/'..newName,
love.data.compress('string','zlib',
JSON.encode{
date=date,
mode=mode,
version=version,
player=player,
seed=seed,
setting=setting,
mod=mod,
}.."\n"..
fileData
)
)
)
fileName=newName
fileName=newName
until true
end
::BREAK_cannotParse::
local rep=DATA.parseReplay('replay/'..fileName)
table.insert(REPLAY,rep)
end
@@ -617,7 +631,8 @@ if TABLE.find(arg,'-- test') then
while not LOADED do coroutine.yield() end
LOG("\27[92m\27[1mAutomatic Test Started\27[0m")
BGM.setVol(0)SFX.setVol(0)
BGM.setVol(0)
SFX.setVol(0)
love.keypressed('space')
TEST.yieldUntilNextScene()

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

After

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 801 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 25 KiB

BIN
media/vocal/flore/b2b_1.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/b2b_2.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/b2b_3.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/b3b_1.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/b3b_2.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/b3b_3.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_1.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_2.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_3.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_4.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_5.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/bye_6.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/cspin.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
media/vocal/flore/espin.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/fspin.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
media/vocal/flore/hspin.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
media/vocal/flore/nspin.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
media/vocal/flore/ospin.ogg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
media/vocal/flore/pspin.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/qspin.ogg Normal file

Binary file not shown.

BIN
media/vocal/flore/rspin.ogg Normal file

Binary file not shown.

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