Compare commits

...

3237 Commits

Author SHA1 Message Date
MrZ626
707bcca368 Merge commit 'f8f115de10b4ef7818cf58bc03c9d75700e425b0' into test-new-mode-system 2021-12-27 14:26:32 +08:00
MrZ626
f8f115de10 更新字体 2021-12-27 14:19:39 +08:00
MrZ626
b07c4dc53a 优化滑条控件和列表框控件 2021-12-26 02:57:57 +08:00
NOT_A_ROBOT
6eeddba773 Remove dictionary and legal page conflict (#563)
Dictionary: "A 🤔 game developed using LÖVE."
Legal page: "TECHMINO is not a fan game of Tetris."

This commit edits the dictionary to follow the legal page into:
"A block stacker game developed using LÖVE."
2021-12-25 19:24:51 +08:00
MrZ626
0cfe4df468 新BGM:lounge(暂未使用, by Hailey (cudsys) & MrZ) 2021-12-24 18:50:30 +08:00
MrZ626
eb5c3c3be5 版本推进 2021-12-24 00:08:46 +08:00
MrZ626
a5b9206694 修正联网对战结算的l'pm公式算的其实是lpm 2021-12-24 00:06:43 +08:00
MrZ626
375e67bdc4 微调框架坐标系相关细节 2021-12-24 00:06:40 +08:00
MrZ626
724a576aa3 跟进框架更新 2021-12-23 21:03:11 +08:00
MrZ626
ed47dcb90c 框架新增onResize 2021-12-23 21:03:05 +08:00
MrZ626
64b08a5a4d 修复录像界面导入导出按钮隐藏状态错误 2021-12-23 14:00:30 +08:00
MrZ626
baed0153a2 两个节日主题颜色浅一些 2021-12-23 13:48:39 +08:00
MrZ626
46d95b33e4 播放立体声音效限制输入值范围 2021-12-23 13:19:01 +08:00
MrZ626
200d270fee 框架会给场景提供触摸id 2021-12-22 21:22:19 +08:00
MrZ626
a8628275a0 大量指数接近动画改为基于时间而不是帧 2021-12-22 02:19:42 +08:00
MrZ626
20a1d2bcc1 修正框架主循环刷新率控制 2021-12-21 23:35:32 +08:00
MrZ626
b887a1f096 版本推进 2021-12-21 23:24:01 +08:00
MrZ626
9bf0e9f28d 调整一行hpc判定为“消除后最高行是垃圾行”,避免自定义场地的空气行争议 2021-12-21 23:18:49 +08:00
MrZ626
dfc724767b 调整帧率控制算法 2021-12-21 10:23:16 +08:00
MrZ626
f0e66e9dc5 框架添加设置最大帧率的入口 2021-12-21 00:16:29 +08:00
MrZ626
0932335f0b 微调游戏设置菜单 2021-12-20 23:21:02 +08:00
MrZ626
a9b39e396a BGM.play新增预加载参数 2021-12-20 16:01:19 +08:00
MrZ626
2e0ceaae72 math扩展库新增interval方法 2021-12-20 16:01:19 +08:00
MrZ626
04f38d2eb6 微调新模式pr的小问题 2021-12-20 14:55:42 +08:00
MrZ626
fc1ed4dff6 修正英文词典小问题 2021-12-20 14:52:40 +08:00
NOT_A_ROBOT
f8935d3dd7 Add Master Instinct mode (#545)
* Add Inverse Invisible mode

A mode where the locked pieces doesn't become invisible, but your active piece does.

[NOTE: I haven't added the mode to the map yet because the mode selection screen is changing]

* Renamed to Master Instinct
2021-12-20 14:51:30 +08:00
user670
a86228677f Update dict_en.lua (#556)
- Un-confused the support entries. Patreon processing fee assumes your account uses the 5% tier.
- TGM games are arcade games, NOT Windows games, despite their now most common versions found in China are Windows ports.
2021-12-20 14:47:45 +08:00
MrZ626
79df9f7876 前两个tsd模式有很小的重力 2021-12-19 20:22:02 +08:00
MrZ626
12ea2d76be 修正profile模块小问题 2021-12-19 17:06:44 +08:00
MrZ626
485bd72241 重构bgm模块 2021-12-19 16:29:50 +08:00
MrZ626
7240275075 修复一个bgm模块小问题 2021-12-19 15:26:16 +08:00
MrZ626
29ef9b8d15 ai种子会根据id变化 2021-12-19 00:59:01 +08:00
MrZ626
97f4795d4e 修正一处框架修改没改完导致地图报错 2021-12-19 00:50:42 +08:00
MrZ626
226e45b24d 整理代码 2021-12-18 16:08:45 +08:00
MrZ626
d6ab7e72b2 调整某个无关紧要的小东西 2021-12-18 01:15:04 +08:00
MrZ626
168f44b8b3 修正一处框架方法名修改没改完 2021-12-18 00:37:32 +08:00
MrZ626
b73f646a4c 作者要求mono语音包暂时消失一段时间 2021-12-18 00:25:05 +08:00
MrZ626
36cefcc000 太空背景支持任意帧率 2021-12-17 21:57:33 +08:00
MrZ626
f901c25c87 修正一些地方move音效没改touch 2021-12-17 21:12:50 +08:00
MrZ626
6d8478b029 string扩展模块新增一个按字符数读+截取的方法 2021-12-17 13:54:27 +08:00
MrZ626
9bcb040019 bgm模块新增isPlaying方法 2021-12-16 17:47:57 +08:00
MrZ626
d977087fc0 调整上一个pr的小问题 2021-12-16 14:35:57 +08:00
C₂₉H₂₅N₃O₅
1a330771d7 大改词典 (#553)
* 大修中文词典

`dict_zh`:
* 术语和专有名词大小写修正
* 日期格式标准化
* 增加评论注释
* 增加更多关键词索引
* 删除重复内容
* 英文使用半角标点
* 修改一些写错的名词
* 修改一个链接

* Updated `dict_en`

`dict_en`
* Added more search indexes
* Added many contents from `dict_zh`, especially the games
* Changed some URL links (from the teatube version to the original websites, if possible)
* Corrected the names of the wrongly-spelled proper nouns
* Rearranged the order of some entries
2021-12-16 13:48:02 +08:00
MrZ626
9c8c9f2106 涉及框架的设置项统一应用,不再细分时机
修改errData的获得方式
WIDGET新增setOnChange方法,不再依赖THEME
2021-12-16 12:39:42 +08:00
MrZ626
0498beecdf 特化新的模式选择场景名 2021-12-16 03:04:35 +08:00
MrZ626
8e075adf8f 新增一个简易秒表小程序 2021-12-16 02:58:36 +08:00
MrZ626
60f2a0e647 更新ios无法自动退出的界面细节 2021-12-16 02:37:25 +08:00
MrZ626
b642f2b5c4 Merge branch 'main' into test-new-mode-system 2021-12-16 02:32:51 +08:00
MrZ626
2b80f72c6b 移除框架内几处对SETTING的依赖 2021-12-16 02:31:53 +08:00
MrZ626
462720881a 支持鼠标滚动模式列表 2021-12-16 02:07:49 +08:00
MrZ626
3dda0254a8 调整中文词典的游戏介绍词条及顺序
Co-authored-by: C₂₉H₂₅N₃O₅ <cgu52@wisc.edu>
2021-12-16 00:22:32 +08:00
MrZ626
054a52a445 版本推进 2021-12-15 14:28:44 +08:00
MrZ626
85242d808b 修复语言文件小问题 2021-12-15 14:28:05 +08:00
MrZ626
57241677a9 修复混战 2021-12-15 14:26:40 +08:00
MrZ626
6ccdee2a53 bgm模块新增瞬间开/关功能
字符串扩展模块不再直接修改全局的string,需要外部自己补充
2021-12-15 11:28:25 +08:00
MrFaq2018
a3d2b7b7f3 Update lang_es.lua (#552) 2021-12-14 12:41:45 +08:00
MrZ626
b7b28b4ae3 修复经典模式h和u难度没有干旱计数器 close #546 2021-12-13 03:52:19 +08:00
MrZ626
30748200dd 修复自定义场地界面按超过第三个的鼠标键会报错 2021-12-11 19:38:24 +08:00
MrZ626
c9f8240234 添加模式搜索的帮助文本 2021-12-10 13:22:42 +08:00
MrZ626
5c7082e886 修复不能deepdrop 2021-12-10 12:50:57 +08:00
MrZ626
9a3c889a9d 修改词典和tip 2021-12-10 09:31:07 +08:00
MrZ626
f41f58e13f 模式文件夹可以显示作者 2021-12-10 01:49:05 +08:00
MrZ626
e81f25c216 修正段位更新条件
模式列表显示获得的段位
2021-12-10 01:37:14 +08:00
MrZ626
36fc681fbf 项目名太长会压缩显示 2021-12-09 20:10:46 +08:00
MrZ626
87e5e29129 彩蛋模式补充进模式树 2021-12-09 20:10:17 +08:00
MrZ626
b432fdf90a 部分语言的模式说明添加换行 2021-12-09 19:43:36 +08:00
MrZ626
6e78a3fedd 选择模式后右侧显示排行榜等信息 2021-12-09 19:41:42 +08:00
MrZ626
24760801af 增加模式图标显示,等待添加素材 2021-12-09 17:26:37 +08:00
MrZ626
f5e8e0f7a5 Merge commit 'df089a2f04fc44774e8dc722cc5d9948f94e5de5' into HEAD 2021-12-09 17:26:31 +08:00
MrZ626
df089a2f04 框架新增1*1空白画布变量PAPER 2021-12-09 17:26:02 +08:00
user670
6600713f4b Update lang_en.lua (#540) 2021-12-09 16:04:24 +08:00
NOT_A_ROBOT
96dad762b2 Update lang_en.lua (#544)
BiRS now allows you to spin the O1 piece.
2021-12-09 16:03:57 +08:00
MrZ626
5470387685 优化滚动
增加触摸控制
2021-12-09 15:55:09 +08:00
MrZ626
fa64c868b9 调整一些tip 2021-12-09 15:21:51 +08:00
MrZ626
2f4a416353 整理代码
调整模式排列顺序
2021-12-09 15:13:09 +08:00
MrZ626
3dbafb042c 进一步优化 2021-12-09 15:04:17 +08:00
MrZ626
97e7b019dd TRS的N/H块补充一个踢墙 2021-12-09 03:21:28 +08:00
MrZ626
28103ad952 新模式选择菜单原型
删除模式图标
动态加载所有模式
2021-12-09 03:20:57 +08:00
MrZ626
1826ca6f2f fix 2021-12-09 01:03:27 +08:00
MrZ626
db490a6c6c FILE.load新增-lua方式(直接运行,无环境限制) 2021-12-09 01:01:24 +08:00
MrZ626
421fdef4f9 调整两个群友词条的关键词 2021-12-09 01:00:40 +08:00
MrZ626
d717ce842d 调整tip 2021-12-08 09:19:58 +08:00
MrZ626
f13c9792af 调整把按键添加到录像的时机
修复触发了自动保存的最后一个按键本身不会保存到录像里
2021-12-08 08:40:24 +08:00
MrZ626
41e7b8e0f4 版本推进 2021-12-07 22:43:53 +08:00
MrZ626
4bd723a7ee 整理代码 2021-12-07 22:43:48 +08:00
MrZ626
66d5bd5490 更多场景的大标题添加最大显示长度 2021-12-07 22:40:16 +08:00
MrZ626
351d0258b2 再优化miya立绘 2021-12-07 22:40:16 +08:00
NOT_A_ROBOT
26fb9a7052 Add Strategy+ (#539) 2021-12-07 22:39:00 +08:00
MrZ626
307fd637fa 换新miya立绘
给不同立绘添加不同点击动画
2021-12-07 20:25:14 +08:00
MrZ626
93fb716f89 fix 2021-12-07 17:10:02 +08:00
MrZ626
7b41551e2d xitonglai 2021-12-07 16:57:47 +08:00
MrZ626
4806af5f7d 重做关于页面,赞助二维码搬家 2021-12-07 16:00:52 +08:00
MrZ626
85cb55cdd0 文本控件也支持设置最大宽度了 2021-12-07 15:51:19 +08:00
MrZ626
27a9697e47 修改scene模块,支持在切换场景的时候传参了 2021-12-07 15:04:27 +08:00
MrZ626
7d230cc3b0 修正印尼语按钮文本错误 close #536 2021-12-07 14:33:04 +08:00
MrZ626
0db2fffad1 版本推进 2021-12-07 01:43:17 +08:00
MrZ626
2a3296a0e8 调整pixel皮肤,修改x块的默认色为黄色 2021-12-07 01:26:46 +08:00
MrZ626
941b875afa 再微调语言设置界面
整理代码
2021-12-07 01:05:46 +08:00
MrZ626
99155bb9cf 更新macOS安装包用图
Co-authored-by: C₂₉H₂₅N₃O₅ <cgu52@wisc.edu>
2021-12-07 01:00:22 +08:00
MrZ626
0701dd2ad3 新皮肤:pixel(by C₂₉H₂₅N₃O₅) 2021-12-07 00:59:19 +08:00
MrZ626
5570c19e1f 调整颜色表
调整语言选择菜单
整理代码
2021-12-07 00:59:19 +08:00
NOT_A_ROBOT
a728c91476 Add Indonesian Translation (#535)
- Added Indonesian language file
- Added Indonesian button in language select menu
- Added Indonesian variant of the word "language" on the language select menu
- Added credit to me for translating (applies to all languages)
2021-12-07 00:00:51 +08:00
MrZ626
6a43481067 优化小程序triple体验 2021-12-06 22:42:49 +08:00
MrZ626
29a049fe4e 版本推进 2021-12-06 22:20:59 +08:00
MrZ626
b5a9c8e1bb 修正一处手柄事件可能爆炸 2021-12-06 21:17:30 +08:00
MrZ626
bb9a35c161 修复云存档/读档的一处小问题 2021-12-06 21:11:54 +08:00
MrZ626
b25a345b42 更换click音效,音乐室播放按钮声音调整 2021-12-06 20:33:41 +08:00
MrZ626
b22b0e0194 修正文件加载模块参数识别的小问题 2021-12-06 19:52:00 +08:00
MrZ626
55cf95f218 修正策略堆叠模式评级标准不当 2021-12-06 19:24:24 +08:00
MrZ626
225ddbcfac 调整几个tip 2021-12-06 16:43:46 +08:00
MrZ626
9377090c7c 【bug风险较大,需要测试】解耦玩家代码中的部分混战模式代码 2021-12-06 16:00:46 +08:00
MrZ626
ed002ec2e1 略微降低master-h模式骨块出现后的难度 2021-12-06 13:49:51 +08:00
MrZ626
e33036d9ec 调整几个词条的关键词 2021-12-06 12:46:17 +08:00
MrZ626
ef03e7c009 layout菜单名改为style 2021-12-06 12:46:11 +08:00
MrZ626
aef4220ac0 修复自定义场地16号颜色的方块名位置显示错误
优化皮肤设置页面交互效果
2021-12-06 03:25:39 +08:00
MrZ626
46223e38cd STRING模块新增一个简易摘要算法,未来保护用户密码明文可能用到 2021-12-06 03:18:41 +08:00
MrZ626
4bafa4bffe 版本推进 2021-12-05 22:01:16 +08:00
MrZ626
2b3dd877dd 修正100攻击竞速模式没有重力 2021-12-05 18:13:47 +08:00
MrZ626
0553e5c45e 调整中文tip 2021-12-05 18:11:12 +08:00
MrZ626
4d93374cf6 微调暂停界面和语言选择界面 2021-12-05 00:54:42 +08:00
MrZ626
4e421bf9ba 微调一些场景细节 2021-12-04 22:29:38 +08:00
user670
8b2a9d7c01 Update lang_en.lua (#534) 2021-12-04 22:17:43 +08:00
C₂₉H₂₅N₃O₅
5a3244d345 更改语言选择界面布局 (#532)
* 再更改语言选择布局
2021-12-04 19:56:24 +08:00
MrZ626
f1b9d0c5e4 新增返回按钮音效 2021-12-03 17:15:32 +08:00
MrZ626
6493e0e623 创建button和key控件时的sound参数可以指定音效名了 2021-12-03 16:45:37 +08:00
MrZ626
e71ba17f9f 微调一个中文词典词条 2021-12-03 11:57:21 +08:00
MrZ626
e656363e20 录像回放菜单对键盘支持更好 2021-12-03 11:23:44 +08:00
MrZ626
0826a748ae 版本推进 2021-12-03 11:04:51 +08:00
MrZ626
a595fe99ef 大规模整理中文tip 2021-12-03 10:50:05 +08:00
MrZ626
9dbc7942e3 调整语言菜单标题 2021-12-03 10:49:57 +08:00
C₂₉H₂₅N₃O₅
845d8ae32e 字体增加谚文/语言滚动菜单丰富 (#530)
* 字体支持谚文显示

* 语言选择界面滚动菜单增加一堆语言
2021-12-03 08:26:09 +08:00
MrZ626
5c524e138c 语言选择菜单会轮流显示不同语言的“语言” 2021-12-02 22:06:06 +08:00
MrZ626
86d9265ff9 修复最后一个hold的死锁问题 close #528 2021-12-02 18:42:03 +08:00
MrZ626
6994a5d6d3 调整tip 2021-12-02 18:16:59 +08:00
MrZ626
e6213b00c1 修复无尽挖掘规则包会对非指定背景做不好的事情 close #525 2021-12-02 14:07:52 +08:00
MrZ626
43e2caa30e 修正进入登录场景时本地没保存过账户信息文件时会弹出文件读取错误 2021-12-02 10:04:38 +08:00
MrZ626
97ca245dfc 修复放录像的时候虚拟按键不会自己动 2021-12-02 08:58:35 +08:00
MrZ626
36de1c0751 版本推进 2021-12-02 01:40:01 +08:00
MrZ626
704341fd15 修正软降在sddas/sdarr很小的时候行为不正确 2021-12-02 01:33:50 +08:00
MrZ626
22b61bc9c3 修正暂停界面数据显示条件为>=180帧而不是>180帧
key控件微调
2021-12-02 00:30:21 +08:00
MrZ626
f4cbbc0a2a 修复cc看不到初始场地 2021-12-01 22:15:54 +08:00
MrZ626
dc99187b9d 修改三个音效名称 2021-12-01 22:03:22 +08:00
MrZ626
915598dec4 整理代码,SFX模块load时会提示缺失多少音效 2021-12-01 19:23:39 +08:00
MrZ626
e7b4518d73 【警告:需要测试】
调整玩家能hold/移动/旋转方块的条件
修复cc复活后小bug
整理代码
2021-12-01 15:46:12 +08:00
NOT_A_ROBOT
9603a78e87 Halved field height for Big mode (#520)
* Halved field height for big mode

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-12-01 09:29:57 +08:00
MrZ626
bd90e051d4 版本推进 2021-12-01 02:41:18 +08:00
MrZ626
26e66b313f 继续收拾各种ui相关
空心控件统一加上灰色背景方便观察
按钮样式调整
2021-12-01 02:40:11 +08:00
MrZ626
c534bbd12a 微调马拉松和混战的速度曲线 2021-12-01 00:39:21 +08:00
NOT_A_ROBOT
83b5e217e5 Add Big Mode (#515)
I even halved the gravity :)
2021-12-01 00:10:00 +08:00
MrZ626
c0adf5bf0b COLOR模块新增三个半透明灰色并大量应用
微调颜色V和lV的hue值
2021-11-30 23:36:04 +08:00
MrZ626
4ff737a4ac 减小语音随机偏差范围 2021-11-30 23:20:59 +08:00
MrZ626
5af0706c09 普通消1不再有single语音 2021-11-30 22:52:27 +08:00
MrZ626
4ccee0f1de 修改小程序trp的next生成 2021-11-30 22:31:46 +08:00
MrZ626
9b752d540e 修正慢速下落有拖影不好看
测试代码忘删
2021-11-30 22:24:58 +08:00
MrZ626
e860c7b7ec 大改重力和软降的结算逻辑,两个值接近的时候不会看起来不自然了 close #438 2021-11-30 19:40:53 +08:00
C29H25N3O5
8a1fd9531f 修复NH块搞反的问题 2021-11-30 15:54:54 +08:00
C29H25N3O5
5fd6e0ee99 再更新虚拟按键贴图, 使用Plex字体 2021-11-30 15:54:52 +08:00
MrZ626
53b2b81fe0 再新增几个tip 2021-11-30 14:51:04 +08:00
MrZ626
6ccc811b46 微调tip 2021-11-30 12:56:32 +08:00
MrZ626
962a61567a OS X系统名称字符串强制改为macOS close #513 2021-11-30 12:25:59 +08:00
MrZ626
58f05e1cec 控制台sudo命令改名su 2021-11-30 12:22:14 +08:00
MrZ626
6b426790c7 调整小程序triple 2021-11-30 11:49:48 +08:00
MrZ626
d4fc578673 词典添加穿透词条 2021-11-30 11:17:17 +08:00
MrZ626
51b567b8db app -list输出美化 2021-11-30 03:53:22 +08:00
MrZ626
07b47dee3f 版本推进 2021-11-30 01:50:13 +08:00
MrZ626
4431a906b9 整理代码 2021-11-30 01:44:21 +08:00
NOT_A_ROBOT
2bb6852e3e Added multiple bg and bgm to Strategy Mode (#506)
(excluding strategy_e for the bgm)
2021-11-30 01:42:39 +08:00
user670
1948ed3e16 Update gameTables.lua (#508)
On an XBox controller, B is on the right and A is on the bottom (unlike a Nintendo controller), and it makes more sense to default B to rotate right and A to rotate left.
2021-11-30 01:42:02 +08:00
MrZ626
81b5ccae30 修复检测第一次启动失败 2021-11-30 01:40:53 +08:00
MrZ626
5543ff0d29 新小程序:Triple 2021-11-30 01:40:49 +08:00
MrZ626
cd567e9e98 删除添加作者qq按钮 2021-11-30 01:40:01 +08:00
MrZ626
5d86925a8a 大多数菜单的二次确认统一用tryXXX管理 2021-11-30 01:40:01 +08:00
MrZ626
e3db564a4b 整理代码,返回需要二次确认的小程序统一用一个函数 2021-11-30 01:40:01 +08:00
MrZ626
a4293624ab 微调wine颜色 2021-11-29 22:24:17 +08:00
MrZ626
367e2dc81a 新增几个tip 2021-11-29 21:32:09 +08:00
MrZ626
9ec33c6eef 修改BGM: sugar fairy的作者标注 2021-11-29 21:32:08 +08:00
MrZ626
9c9b8d36f2 小程序mem平衡调整 2021-11-29 21:32:08 +08:00
MrZ626
4fc6f335c7 新增小程序:Memorize 2021-11-29 15:40:55 +08:00
MrZ626
d2f4123d08 修改两个有数字键盘的小程序的退格键图标 2021-11-29 15:40:40 +08:00
MrZ626
b29d352a1b 把主菜单快捷键加回来 2021-11-29 12:57:17 +08:00
MrZ626
cd5a71cd12 更新赞助名单 2021-11-29 12:49:58 +08:00
MrZ626
cdd68e985d 修正键位设置菜单里mac的del键符号错误 2021-11-29 11:15:24 +08:00
MrZ626
8cf4d4280c 修正Ospin变O后操作序列不清空
Ospin变远端朝下JL时允许水平可移动
2021-11-29 11:11:54 +08:00
C29H25N3O5
cd29bf8702 调整字体
* Monospaced字体简中字库使用大陆标准字形, 日语部分仍然使用日语字形
* 调整自定义图标手柄和键盘部分的文字字体
* 修复proportional字体a的变音符没对齐的问题
* 修复Monospaced字体ij连字的问题
* 修复Monospaced字体slash还用的是plex字体的问题
2021-11-28 18:24:11 -06:00
MrZ626
13d98be051 版本推进 2021-11-29 04:23:05 +08:00
MrZ626
a350ff3182 微调背景模块,自定义模式设置背景的时候访问不到特殊背景了 2021-11-29 04:22:08 +08:00
MrZ626
e0360cc7eb 修正一处模块更新错误(傻了) 2021-11-29 03:57:18 +08:00
MrZ626
4249a29b63 继续优化键位设置菜单 2021-11-29 03:38:05 +08:00
MrZ626
43b2a0a8c8 优化键位设置菜单各种键的显示 2021-11-29 03:27:57 +08:00
MrZ626
6d6584f99e 修改按钮音效,给复选框和选择器添加新音效 2021-11-29 02:48:41 +08:00
MrZ626
077c651226 微调键位设置菜单 2021-11-29 01:16:22 +08:00
MrZ626
3fc872aa76 微调几个隐藏模式入口点击范围 2021-11-28 22:39:49 +08:00
MrZ626
cb0b347a38 更新赞助名单 2021-11-28 22:21:10 +08:00
MrZ626
d08967c688 整理词典 2021-11-28 22:02:39 +08:00
MrZ626
3666c0caa9 修复更换自定义背景图片时没有更新尺寸 2021-11-28 20:52:12 +08:00
MrZ626
4ef179fccb 控制台场景向全局环境添加一个输出到控制台的函数 close #499 2021-11-28 19:51:46 +08:00
MrZ626
861f9b3caa 继续完善手柄控制 2021-11-28 19:40:26 +08:00
MrZ626
05292df456 模式地图上读取手柄按键时不再报错 2021-11-28 17:43:36 +08:00
MrZ626
9fed692223 控制台help命令输出美化 close #502 2021-11-28 16:53:24 +08:00
MrZ626
b1c04c1fea 修复自定义模式用按钮开始游戏会报错 2021-11-28 16:21:27 +08:00
MrZ626
bc9adc2cd3 调整扳机键的默认触发阈值 2021-11-28 16:16:44 +08:00
MrZ626
cdf149afca 略微优化自定义背景绘制性能 2021-11-28 05:20:29 +08:00
MrZ626
73145b4e5e 自定义背景拖入无法识别的格式时会提示 2021-11-28 05:20:18 +08:00
MrZ626
f8b9f30fd6 修改框架的光标默认位置 2021-11-28 05:02:29 +08:00
MrZ626
e6bc567b12 两种按钮上的文本也会挤压绘制了
优化控件绘制性能
修正两个背景设置按钮位置错误
调整之前忘了同步的语言
2021-11-28 04:56:55 +08:00
MrZ626
fe004a72f0 版本推进 2021-11-28 04:17:44 +08:00
MrZ626
0433fd3d9d 三个高难隐形使用不同模式图标 close #493 2021-11-28 04:10:42 +08:00
MrZ626
1c18060570 尝试修复地图菜单读取手柄摇杆位置错误 2021-11-28 04:06:37 +08:00
MrZ626
be54c0e641 关闭背景时亮度可调
新增自定义图片背景功能(可调透明度,目前仅电脑可用)
2021-11-28 03:56:53 +08:00
MrZ626
0be2eb9107 修正一处可能未改回材质缩放模式 2021-11-28 03:30:34 +08:00
MrZ626
4859faf1e7 创建控件允许留空code域,什么都不会发生 2021-11-28 02:03:52 +08:00
MrZ626
c25d40c67d 启动加载数据文件时允许不存在,不会提醒 close #495 2021-11-28 01:59:24 +08:00
MrZ626
b6c37a5c9f 框架keyDown事件机制微调,重构框架主循环和控件相关代码
可以用键盘和手柄控制光标(手柄不完善)
整理代码和部分语言文件细节
2021-11-27 23:16:21 +08:00
MrZ626
f6b4c1b109 整理代码,表示键盘按键的字符串使用单引号 2021-11-27 19:01:32 +08:00
MrZ626
841faeede4 版本推进 2021-11-27 14:33:38 +08:00
MrZ626
e61b9b23a0 修复右侧c/s/a+方向键不能触发控件功能 close #492 2021-11-27 14:33:36 +08:00
MrZ626
72a826ef0a 微调报错界面,日志使用等宽字体 2021-11-27 14:25:13 +08:00
MrZ626
f070b8f295 修正svg标题的小问题 2021-11-27 14:20:05 +08:00
MrZ626
1646b75520 修正TRS的v块1<->2比0<->3少一个踢墙 2021-11-27 14:20:05 +08:00
C29H25N3O5
241617e31a 微调字体
* Monospaced的CJK字体也调整为思源
* 改动几个新元素汉字
* 精简Monospaced字符集
2021-11-26 22:58:40 -06:00
MrZ626
5de2893e07 帮0.17前的版本自动调大1帧的das打断,尝试维持手感 2021-11-27 05:52:35 +08:00
MrZ626
030e894040 theme移出框架,大改通常bgm的配置 2021-11-27 05:35:55 +08:00
MrZ626
e7b9a4ba87 添加DRS_weak旋转系统 close #441 2021-11-27 05:09:02 +08:00
MrZ626
617bae67c6 修正matt的一些翻译修改和控制台代码 2021-11-27 04:47:48 +08:00
MattMayuga
64d2d08820 Update English translation (#487)
* Update readme.md

* Update lang_en.lua

* Update app_console.lua

* Update error.lua

* Add warnings and extended time to 10s for resetall

When you use the resetall command, you will now get a message that there is no way to recover the saved data when it is deleted.
2021-11-27 04:28:08 +08:00
NOT_A_ROBOT
037b33c99a Update theme list (#489) 2021-11-27 04:26:40 +08:00
MrZ626
afa69ce9a4 版本推进 2021-11-27 04:24:41 +08:00
MrZ626
3226c0c831 重构字体模块,支持多字体
控制台应用等宽字体
2021-11-27 04:24:40 +08:00
MrZ626
4e759cad4c ultra模式重开时会重新播放bgm 2021-11-27 02:05:48 +08:00
MrZ626
291795928d 更多的设置修改的时候会触发警告 2021-11-26 21:52:10 +08:00
MrZ626
a1315e7f7f 修复一处遗留逻辑hold和序列生成相关的错误 2021-11-26 21:24:34 +08:00
MrZ626
657bc2b4e0 修正加载文件的时候会因为没有应用语言没法弹出消息而报错 2021-11-26 14:15:42 +08:00
MrZ626
d8b12fc55d 版本推进 2021-11-26 01:48:23 +08:00
MrZ626
6d11367ea4 新BGM:malate(暂未使用) 2021-11-26 01:47:14 +08:00
MrZ626
eb9e741b4f 关于界面的对称40行入口换成堆积模式 2021-11-26 00:59:23 +08:00
MrZ626
c47546d501 微调一些玩家动作逻辑
修复零ARE+非零lineARE的时候ihs失效
2021-11-26 00:55:29 +08:00
MrZ626
11aa178fc1 ultra模式计时器样式改为数字 2021-11-25 19:58:22 +08:00
MrZ626
f3a88ef269 游戏内再次封装saveFile和loadFile函数
原本的FILE模块更独立,不基于全局text变量和报错信息而是直接报错
2021-11-25 17:38:09 +08:00
MrZ626
720dc2131f 字符串扩展模块给默认string库补充两个方法repD和sArg 2021-11-25 17:37:46 +08:00
MrZ626
701ef17ae1 大爆炸改名清版竞速 2021-11-25 14:03:36 +08:00
MrZ626
1a689a5f07 修正当前方块显示条件 2021-11-25 09:57:45 +08:00
MrZ626
ef12ab0cee 版本推进 2021-11-25 02:43:57 +08:00
MrZ626
3d26db7a01 整理代码,修复消行延迟和出块延迟在极小时的错误行为 2021-11-25 02:42:25 +08:00
MrZ626
dd3df9981b TRS的J/L新增一个踢墙 2021-11-25 02:08:53 +08:00
MrZ626
5d04e83529 修正一个赞助id 2021-11-25 01:13:55 +08:00
MrZ626
7ed4626d71 微调logo 2021-11-24 21:34:26 +08:00
MrZ626
ecf5a29a71 添加一个赞助人 2021-11-24 20:36:52 +08:00
MrZ626
1a24b346a0 修正英文文本缺一个holdMode 2021-11-24 20:36:47 +08:00
MrZ626
72d06c7a02 软降n格的键也可以触发深降 2021-11-24 20:26:24 +08:00
MrZ626
26fde8c694 微调默认摇杆参数 2021-11-24 20:17:53 +08:00
MrZ626
8adeb99be7 修正标题图像素材首字母偏低 close #485 2021-11-24 19:39:38 +08:00
MrZ626
c92f15156b 虚拟按键显示开关移至菜单第一页
修改部分不常用设置时会显示警告
2021-11-24 19:33:08 +08:00
MrZ626
63f69d712b 修复自定义房间改不了锁外即死规则 close #484 2021-11-24 11:20:49 +08:00
MrZ626
55a1bd06f3 版本推进 2021-11-24 06:41:51 +08:00
MrZ626
6a29abf7f0 自定义hold数量为0时不显示hold模式选择器,顺便更新创建房间参数ui遗漏 close #483 2021-11-23 22:30:43 +08:00
MrZ626
83bdd9f2c4 【警告:可能有bug,需要测试】
较大规模整理玩家相关代码
较大规模整理玩家相关代码,重构出块延迟和消行延迟逻辑,现在0是真的无延迟,不再有1帧等待了
添加出块延迟打断(即ARE打断)(不包括消行延迟,默认为打断至无穷大,相当于无此功能)
自定义游戏和自定义房间ui跟进
close #471
2021-11-23 20:26:31 +08:00
MrZ626
95879827c8 调整游戏大logo为正体字 2021-11-23 18:13:45 +08:00
MrZ626
2ade518207 调整tip 2021-11-23 00:48:49 +08:00
MrZ626
36c8449e4d 内存过低的提示每次启动最多出现三次 2021-11-23 00:28:08 +08:00
MrZ626
3c04df69f3 移除手柄时自动松开所有按下了的键,整理代码 2021-11-23 00:27:57 +08:00
MrZ626
1224ee9a67 词典的新人引导条目链接向user670的翻译版本 close #482 2021-11-22 23:45:54 +08:00
MrZ626
fdd1d4463a 版本推进 2021-11-22 21:55:58 +08:00
MrZ626
940ac3736c 整理框架代码
整理手柄的摇杆/扳机支持代码
2021-11-22 15:59:57 +08:00
user670
d38897b54d (Experimental) Support controller axises, closes #466 (#477)
* (Experimental) Support controller axises

* Remove redundant variable; use more readable key event names

* Remove redundant comment; fix typo
2021-11-22 15:52:51 +08:00
MrZ626
90848c6654 全局默认使用5帧窒息延迟 2021-11-22 12:48:02 +08:00
NOT_A_ROBOT
0220d5aefc Make Strategy Ultimate have rhombus outline (#481) 2021-11-22 11:08:13 +08:00
MrZ626
f42032df07 更新赞助名单 2021-11-22 11:04:32 +08:00
MrZ626
05d7eb60bc 修正一处拼写问题导致报错消息识别错误 2021-11-21 21:45:37 +08:00
MrZ626
942416317c 小程序arm添加计时器和重置按钮,删除测试用的跳过按钮 2021-11-21 20:18:42 +08:00
MrZ626
576de945fb 添加一打tip 2021-11-21 05:25:55 +08:00
MrZ626
8b02084428 修复bgm模块清缓存导致报错 2021-11-21 05:11:01 +08:00
MrZ626
9f666d69db 调整大爆炸模式模板 2021-11-21 03:52:13 +08:00
MrZ626
a4c52d9162 修正玩家创建任务第一次初始化运行的时候报错没有任何提示 2021-11-21 03:08:34 +08:00
MrZ626
592b11366e table扩展模块新增两个去重方法和反转方法 2021-11-21 03:06:00 +08:00
MrZ626
07f50b9243 调整一些文本文件 2021-11-20 03:39:05 +08:00
MrZ626
ec74d55686 整理代码 2021-11-20 03:28:58 +08:00
MrZ626
4518513e87 应用1的语音偏移半径 2021-11-20 03:28:19 +08:00
MrZ626
7df4e2144f 语音模块支持设置轻微随机音调偏移半径(默认关闭) 2021-11-20 03:27:53 +08:00
MrZ626
7f9c9248ce 版本推进 2021-11-19 17:36:12 +08:00
MrZ626
9c1db48804 整理代码 2021-11-19 17:35:53 +08:00
C₂₉H₂₅N₃O₅
0628830f0c 继续调词典(嗯) 2021-11-19 01:21:48 -06:00
C₂₉H₂₅N₃O₅
9436f2f5fb 微调词典 大改legals (#472) 2021-11-19 01:17:12 -06:00
MrZ626
c5e1b5617f 再调整词典两个词条 2021-11-19 14:21:42 +08:00
MrZ626
298c417aa3 更新部分词条(英文待翻译) 2021-11-19 02:40:46 +08:00
MrZ626
fc74831700 添加lockout判负规则(默认关闭) 2021-11-19 02:33:21 +08:00
MrZ626
d9db55de44 整理代码,修正一处多余代码忘了删 2021-11-19 02:16:34 +08:00
MrZ626
3fd205e8c2 bgm模块添加可调节的最大加载数限制,更不容易达到引擎加载音频数上限 close #447 2021-11-19 01:47:14 +08:00
MrZ626
5cb828fb92 修改策略堆叠模式的解锁路径 2021-11-19 00:59:16 +08:00
MrZ626
5f7a3fd53f 版本推进 2021-11-18 19:54:31 +08:00
MrZ626
8e3e598753 词典添加cambridge词条(翻译自tetris wiki) 2021-11-18 19:52:42 +08:00
MrZ626
2a0a0f60f8 策略堆叠的das和arr参数移到规则包 2021-11-18 19:43:18 +08:00
MrZ626
6b7d1fdf9f 策略堆叠模式添加到地图 2021-11-18 19:41:27 +08:00
MrZ626
65199a40f7 修复40行效率左侧信息颜色问题 2021-11-18 19:27:27 +08:00
MrZ626
f9082a8800 整理代码 2021-11-18 19:16:06 +08:00
NOT_A_ROBOT
1670c6e7d6 Add strategy modes (#468)
* Add strategy mode
2021-11-18 19:08:46 +08:00
NOT_A_ROBOT
ff2073ed4d fix numpadenter on console (#469)
made numpadenter do the same thing as enter on console
2021-11-18 19:08:46 +08:00
MrZ626
f14aaac635 微调staff页面 close #470 2021-11-18 19:08:46 +08:00
MrZ626
c709fa622f 修正hold模式没有英文文本 2021-11-18 19:08:45 +08:00
MrZ626
c752556bf3 微调pc联系模式左侧信息位置
继续推进大爆炸模式框架
2021-11-18 03:54:42 +08:00
MrZ626
e7d9703fcc 修复向玩家场地里塞入垃圾行时如果不存在当前方块会报错 2021-11-18 03:54:42 +08:00
C29H25N3O5
1ed52a84b0 增加半隐和全隐的英文词条 2021-11-17 11:50:04 -06:00
C29H25N3O5
4fdb278751 微调dmg背景图片 2021-11-17 11:29:41 -06:00
MrZ626
8318803923 修改一首bgm名称和一个赞助id 2021-11-18 01:07:27 +08:00
MrZ626
42de7e3676 纠正一个帮助开发的网友id 2021-11-17 22:14:40 +08:00
MrZ626
3efa646ee3 再增加堆积模式的窒息延迟 2021-11-17 22:11:50 +08:00
MrZ626
b414c2ab42 版本推进 2021-11-17 22:08:00 +08:00
MrZ626
205dea3db7 TRS的S/Z添加四个踢墙防止在一些地方卡死 2021-11-17 21:49:37 +08:00
MrZ626
6cac688555 完善提前移动词条 2021-11-17 20:48:40 +08:00
MrZ626
09b1b08c1e 堆积模式添加8f窒息延迟 2021-11-17 20:29:42 +08:00
MrZ626
b61a1270e9 生成位置预览开启后hold的生成位置也可见 2021-11-17 16:47:25 +08:00
MrZ626
b85cee7e1f 修复机翻语言超级消除没有行数显示 close #462 2021-11-17 16:30:00 +08:00
MrZ626
8e674e3e29 版本推进 2021-11-17 16:25:38 +08:00
MrZ626
aa2812c874 大爆炸模式框架完成,等待具体关卡生成算法 2021-11-17 16:24:18 +08:00
MrZ626
6f282431c4 pc训练的序列模式和旋转系统参数放入规则包 2021-11-17 16:01:09 +08:00
MrZ626
470e54cdd0 两个pc练习模式添加胜利条件,不再无尽
略微降低pc练习-普通的X评级标准
2021-11-17 16:01:08 +08:00
MrZ626
da3ef1c2a6 pc训练代码整理,开局就能看到关卡并且没有提前硬降不会死的bug了 2021-11-17 16:01:08 +08:00
MrZ626
9efe0e62d5 词典添加半隐和全隐词条(英文待翻译) 2021-11-17 16:01:08 +08:00
MrZ626
7038f81b46 调整一些tip
整理代码
2021-11-17 10:59:38 +08:00
MrZ626
de972a60df blackhole背景改名blockhole 2021-11-17 10:59:34 +08:00
MrZ626
6a87787d6f 微调github issue模板 2021-11-17 10:59:30 +08:00
MrZ626
6dc9a4b507 安全,安全!(嗯嗯嗯 2021-11-17 10:59:27 +08:00
MrZ626
5b7c888d57 修正经典模式显示的速度等级 2021-11-17 10:59:01 +08:00
MrZ626
a1f761b83e 修正一处拼写错误 2021-11-17 10:58:51 +08:00
C₂₉H₂₅N₃O₅
c40a6bfaa0 换行 (#463) 2021-11-16 14:28:30 -06:00
MrZ626
441c6f7667 再次修复安全漏洞(嗯 2021-11-17 01:15:03 +08:00
MrZ626
a07d57cf71 版本推进 2021-11-16 20:39:29 +08:00
MrZ626
a467f972f9 调整死亡延迟的称呼 2021-11-16 20:39:19 +08:00
MrZ626
3f455ee360 整理代码 2021-11-16 20:29:55 +08:00
MrZ626
7a0b913768 修复安全漏洞(确信 2021-11-16 14:47:42 +08:00
MrZ626
a7b240ade8 微调符号语言 2021-11-16 14:00:09 +08:00
C₂₉H₂₅N₃O₅
bb64404821 完善字体和符号文本 (#460) 2021-11-15 22:27:40 -06:00
MrZ626
caf92eb3c8 修正几处全半角括号 2021-11-16 11:25:16 +08:00
MrZ626
6a117a0fab 词典添加死亡延迟词条 2021-11-16 11:18:33 +08:00
MrZ626
26682509f7 添加防止死亡延时 close #459 2021-11-16 11:18:32 +08:00
C₂₉H₂₅N₃O₅
d85d92fb43 添加几种语言的赞助说明 (#458) 2021-11-15 17:06:49 -06:00
MrZ626
c412003cb3 调整关于页面信息
词典添加patreon词条
2021-11-16 03:55:57 +08:00
MrZ626
e39b5dbd51 修改中文词典的官网词条 2021-11-16 03:27:46 +08:00
MrZ626
db162ea66f 微调about信息 2021-11-16 03:27:46 +08:00
Not-A-Normal-Robot
f9f9fde368 修改 legals.md 一处拼写错误 (#457) 2021-11-15 10:57:16 -06:00
MrZ626
4b221c2eb5 版本推进 2021-11-15 15:52:16 +08:00
MrZ626
ed45bebfa0 添加转盘模块和实验性每日转盘小程序 2021-11-15 15:47:05 +08:00
MrZ626
fa0bc3805f 整理代码,Zframework添加数学扩展模块 2021-11-15 15:46:57 +08:00
MrZ626
7710f0b70f 修正词典 2021-11-15 02:13:56 +08:00
C₂₉H₂₅N₃O₅
0277ddadb5 微调词典 (#456) 2021-11-14 12:05:00 -06:00
MrZ626
88e23e32f5 piano小程序支持shift/ctrl升降半音,左右alt变调,补充更多键位 2021-11-15 02:00:04 +08:00
MrZ626
8ab5b4a17a SFX模块新增音高获取音名的方法
整理代码
2021-11-15 02:00:04 +08:00
MrZ626
503dfd69ef 再调整SFX.playSample方法,支持用数字代表绝对音高,但是移除最后的音量参数 2021-11-15 01:40:53 +08:00
ParticleG
ae61ec26c0 - Remove upload to server 2021-11-15 01:39:37 +08:00
MrZ626
00bc24bd50 新增piano小程序(目前只支持键盘操作) 2021-11-14 22:19:45 +08:00
MrZ626
abd15d6307 table扩展模块新增一个函数 2021-11-14 22:09:44 +08:00
MrZ626
c01ac546d1 再修正播放采样的超音域问题 2021-11-14 21:48:02 +08:00
MrZ626
af77221ba2 修复换准备音效播放方式后ultra模式倒计时没声 2021-11-14 17:34:41 +08:00
MrZ626
204f0938d3 播放准备音效的函数可调音量 2021-11-14 17:32:10 +08:00
MrZ626
ad39d1408c 音乐室输入首字母自动跳转 2021-11-14 17:31:49 +08:00
MrZ626
ed011173f6 版本推进 2021-11-14 16:53:43 +08:00
MrZ626
491fcb5860 添加缓冲区和消失区两个词条
Co-authored-by: C₂₉H₂₅N₃O₅ <cgu52@wisc.edu>
2021-11-14 16:45:53 +08:00
MrZ626
c2d5537d8d 经典模式添加干旱计数器 close #452 2021-11-14 16:45:50 +08:00
MrZ626
7d5037ae87 竞速-效率显示剩余行数 2021-11-14 12:37:39 +08:00
MrZ626
07d7714317 修正无尽模式标题首字母大小写错误 close #454 2021-11-14 12:19:26 +08:00
MrZ626
2cab97f37d 修复0arr时自动移动时声音特别响 2021-11-14 11:49:41 +08:00
MrZ626
d184778c9a 修正string扩展模块时间转换函数可能出现1分60(截断小数点后两位防止被向上取整) 2021-11-14 11:24:11 +08:00
MrZ626
9fd3b3008d 新增物品数据,每日登录新增加一个zTicket 2021-11-13 22:33:25 +08:00
MrZ626
71aa35b214 修正统计里的日期每次启动都被刷新了导致单日统计时间不对 2021-11-13 17:32:54 +08:00
MrZ626
4443dc9d3e table扩展模块添加一个方法(未来会整理类似数据表更新函数) 2021-11-13 17:29:17 +08:00
MrZ626
839e357301 修改更新历史 2021-11-13 16:31:46 +08:00
MrZ626
ac56c5a415 修改竞速-效率左侧信息栏 2021-11-13 16:23:27 +08:00
MrZ626
36e3343341 TRS的J5和L5新增一个180度踢墙 2021-11-13 16:14:36 +08:00
MrZ626
510f7d7513 版本推进 2021-11-13 05:42:36 +08:00
MrZ626
3128eb38c0 再调整一些模式的bgm 2021-11-13 05:41:27 +08:00
MrZ626
14ef654612 混战模式信息绘制从玩家类移到规则包 2021-11-13 05:21:59 +08:00
MrZ626
bc5193f95e 落块事件改名落块钩子
添加死亡钩子(仅在窒息和超高触发)
堆积模式消行动作挂到死亡钩子上
2021-11-13 05:20:32 +08:00
MrZ626
8cbb4a38bc dropPiece事件改名hook_drop 2021-11-12 23:20:29 +08:00
MrZ626
fce08c83ef 堆积模式移出地图,删除h难度 2021-11-12 21:17:30 +08:00
MrZ626
018e99f9e6 修正改评级文本后tip没改 2021-11-12 16:39:30 +08:00
MrZ626
7fe390b34b 赞助名单添加三位 2021-11-12 16:28:37 +08:00
MrZ626
8c7202c569 版本推进 2021-11-12 03:35:54 +08:00
MrZ626
ab386bb53c 整理代码 2021-11-12 03:30:52 +08:00
MrZ626
87c791b8c7 tips新增几个好玩的游戏 2021-11-12 02:58:17 +08:00
MrZ626
00e3e2d19d 取消准备按钮不再只显示取消两个字 2021-11-12 02:54:14 +08:00
MrZ626
8d7d5c7b04 新BGM:peak(暂未使用) 2021-11-11 19:22:45 +08:00
MrZ626
849a18e159 移除模式的颜色 2021-11-11 19:14:37 +08:00
MrZ626
a4357d0843 移除节奏模式,准备之后添加音游模式 2021-11-11 18:59:04 +08:00
MrZ626
e2b4a78b59 修正超音源音域音符处理方法 2021-11-10 21:15:50 +08:00
MrZ626
01387b5488 版本推进(修改更新历史和build号) 2021-11-10 18:30:34 +08:00
MrZ626
168e2f80b8 SFX.play新增pitch参数,playSample方法允许超过音源范围(差太多了效果不好) 2021-11-10 17:52:48 +08:00
MrZ626
4f79ef8708 改进一处材质缺失后的报错 2021-11-10 16:40:00 +08:00
MrZ626
16497833df 修正COLOR.hsv函数s小于0时漏返回透明度 close #445 2021-11-10 14:35:22 +08:00
MrZ626
cd6a50d5a0 修复词典导出词条保留了替换敏感词的特殊字符 2021-11-10 14:35:22 +08:00
C₂₉H₂₅N₃O₅
4c5a61f2d8 修改License相关内容 (#444) 2021-11-09 21:38:45 -06:00
C29H25N3O5
1fd8d39970 更换中文字形 2021-11-09 18:57:35 -06:00
MrZ626
d133d64890 目标分数显示器分割线长度微调 2021-11-09 23:16:33 +08:00
MrZ626
b27aa8b60d freeRow模块改名line模块并暂时在“行”的管理上不再那么节约地使用内存 2021-11-09 20:14:08 +08:00
MrZ626
230d67492e 测试场景左上文本从最晚的开始显示 close #437 2021-11-09 16:04:08 +08:00
MrZ626
4f9d5b282c 修正一个开发者id写法问题 2021-11-09 16:04:08 +08:00
ParticleG
a2955e8722 - Fix wrong action name 2021-11-09 16:04:07 +08:00
MrZ626
df892671d5 修改更新历史和build号 2021-11-09 16:04:07 +08:00
MrZ626
7fa96eee1a 被攻击时场地会抖动 2021-11-09 16:04:07 +08:00
MrZ626
a1030906c7 场地晃动改名swing
添加场地抖动特效(跟场地晃动使用同一个设置值)
2021-11-09 16:04:07 +08:00
MrZ626
e6a9a4f4be 微调wine颜色,dark颜色更dark 2021-11-09 16:04:07 +08:00
MrZ626
efa1247596 颜色表的灰色饱和度更低并改为偏暖 2021-11-09 16:04:07 +08:00
MrZ626
069fcee721 整理代码
移除旧的切换攻击模式代码
旋转导致场地倾斜封装成玩家方法
调整瞬移到左右的场地晃动程度
调整场地平移晃动的恢复速度
软降触地时也会播放触地音效
2021-11-09 16:04:07 +08:00
C₂₉H₂₅N₃O₅
66621404f1 Changed the colours and the fonts in the game (#435)
* 微调字体

* 调整配色, 微调字体
2021-11-09 16:04:06 +08:00
ParticleG
e09609ea21 - Use Python 3.9 2021-11-09 16:04:06 +08:00
ParticleG
d02ae67bc0 - Add logs to upload-artifact 2021-11-09 16:04:06 +08:00
ParticleG
27327d57c4 - Test Windows with curl 2021-11-09 16:04:06 +08:00
MrZ626
cce93b6df9 整理代码 2021-11-09 16:04:06 +08:00
ParticleG
546104ba5b - Add Upload Action 2021-11-09 16:04:06 +08:00
MrZ626
ca5816ba14 进入newRoom菜单时不会试图修改背景和bgm 2021-11-09 16:04:06 +08:00
MrZ626
e5bd16476e 修改更新历史和build号 2021-11-09 16:04:05 +08:00
MrZ626
94431d4c2e 只在更新后触发自动转换以旧版本模式名存储的数据文件 2021-11-09 16:04:05 +08:00
MrZ626
f98d6892f1 颜色表改用hsv生成 2021-11-09 16:04:05 +08:00
MrZ626
1fe436cbe3 微调词典
微调两个小程序
整理代码
2021-11-09 16:04:05 +08:00
MrZ626
c5a37a9920 微调中文词典两个词条 2021-11-09 16:04:05 +08:00
MrZ626
eed7e96096 无尽马拉松的are每300行减小一次,line are每100行减小一次 2021-11-09 16:04:05 +08:00
MrZ626
a7f36a4162 无尽马拉松添加1700行的终点 2021-11-09 16:04:05 +08:00
MrZ626
8ba872d45d 微调排行榜字体大小 2021-11-09 16:04:04 +08:00
MrZ626
7a55451faa 无尽马拉松添加排行榜 2021-11-09 16:04:04 +08:00
MrZ626
372571bd80 修改更新历史
整理代码
2021-11-09 16:04:04 +08:00
MrZ626
77120c0b90 调整无尽马拉松的难度曲线 2021-11-09 16:04:04 +08:00
Not-A-Normal-Robot
01d1e44644 Decrease lock delay when level up above lvl20 2021-11-09 16:04:04 +08:00
Not-A-Normal-Robot
0ad8cddefe Added Infinite Marathon 2021-11-09 16:04:03 +08:00
MrZ626
ce67253502 修改更新历史 2021-11-09 16:04:03 +08:00
MrZ626
cb9f2c0617 修改mph模式的bgm 2021-11-09 16:04:03 +08:00
MrZ626
635d9407ed 新模式:竞速-效率 2021-11-09 16:04:03 +08:00
MrZ626
0f9f6565f1 修复超级消除结算时分数计算变量写错导致报错 2021-11-09 16:04:03 +08:00
MrZ626
a45b6ad57e move音效在方块因重力或旋转触地时也会播放,而不只是移动后
move音效名改为touch
2021-11-09 16:04:03 +08:00
MrZ626
a5de06dedb 修改更新历史 2021-11-09 16:04:03 +08:00
MrZ626
fbfbd1ed98 修正pr的一个符号错误 2021-11-09 16:04:02 +08:00
C₂₉H₂₅N₃O₅
8f06b3bd1a Changed the font and CN tips (#433)
* 补全英文词典翻译

* 大改字体

- 西文部分采用IBM Plex
- 全角标点样式采用西文样式
- 添加类Plex的IPA符号

* 微调中文tips

* 更新 Legals

* 修正一个语法错误
2021-11-09 16:04:02 +08:00
C₂₉H₂₅N₃O₅
7e0dbceefc 补全英文词典翻译 (#431) 2021-11-09 16:04:02 +08:00
MrZ626
7e3db1de17 新BGM:1989(用于几个经典模式)
重新安排一些模式的BGM
2021-11-09 16:04:02 +08:00
MrZ626
111790fdab 修正自动打包没有把legals.md和license.txt文件放进去 2021-11-06 03:27:09 +08:00
MrZ626
bec03de7b8 纠正几个错别字 2021-11-06 00:50:12 +08:00
MrZ626
f5dfae3a6c 词典新增deepdrop词条 2021-11-06 00:40:04 +08:00
MrZ626
d3dec2b5f1 更新版本号为0.17.0,追加更新历史 2021-11-06 00:39:50 +08:00
MrZ626
f083136998 整理代码 2021-11-05 11:02:45 +08:00
MrZ626
cd3d0b370c 修改一些词典词条 2021-11-05 10:36:49 +08:00
MrZ626
f4c6632941 降低无旋转40L评级标准 2021-11-04 21:57:24 +08:00
MrZ626
750cb9a669 调整繁中一些用词
微调语言菜单按钮文本大小
2021-11-04 21:50:05 +08:00
C₂₉H₂₅N₃O₅
62a198a017 添加繁体中文语言, 语言切换界面变更颜色和布局 (#429) 2021-11-04 21:39:05 +08:00
MrZ626
5780ba0f3e 词典other分类改为org并移到开始的help版块后
词典新增一个词条等待翻译
2021-11-04 19:40:42 +08:00
ParticleG
86edeb1e0c - Fix wrong upload file suffix 2021-11-04 16:12:48 +08:00
Particle_G
53b1852f28 Rel ios test (#427)
* - Test Release note

* - Test ios changelog

* - Finish touching
2021-11-04 04:01:12 +08:00
MrZ626
e3c385693b 修改更新历史和build号 2021-11-03 19:45:23 +08:00
MrZ626
572c0fbfa1 调整方块朝向菜单彩蛋模式进入方式 2021-11-03 19:43:36 +08:00
MrZ626
bbdf71167a 调整录像回放菜单按钮尺寸 2021-11-03 19:14:43 +08:00
MrZ626
2136ccd9a2 更新词典中的一些玩家信息 2021-11-03 15:46:46 +08:00
MrZ626
2131aea575 玩家类添加一个目标线绘制函数
堆叠模式添加需要填满的高度线
2021-11-03 15:41:13 +08:00
MrZ626
32b21c7d29 修改更新历史 2021-11-03 13:37:58 +08:00
MrZ626
8f6f6f316f 微调倒计时动画 2021-11-03 13:33:44 +08:00
MrZ626
66f9ac2791 修复无尽挖掘开局垃圾行可能会在同一列 2021-11-03 13:21:51 +08:00
MrZ626
ac0ba90438 修复wing背景颜色配置问题 2021-11-03 13:21:37 +08:00
MrZ626
990659ce91 修改更新历史和build号 2021-11-03 02:42:38 +08:00
MrZ626
00c602c844 再调整超级消除音效
调整launchpad
2021-11-03 02:40:21 +08:00
MrZ626
9db62ffc39 调整堆叠模式平衡 2021-11-03 02:33:31 +08:00
MrZ626
e7c777e502 超级消除有分数了
再调整超级消除的声音
2021-11-02 22:17:44 +08:00
MrZ626
4991e8cea2 优化堆叠模式体验,微调难度和评级 2021-11-02 20:15:23 +08:00
MrZ626
111d4e991f 微调单次超大消除相关的文本和效果 2021-11-02 19:37:50 +08:00
MrZ626
bedfa74a32 整理代码 2021-11-02 19:34:46 +08:00
MrZ626
f6944dc223 微调test模块 2021-11-02 17:39:23 +08:00
MrZ626
a34a3051a3 Merge remote-tracking branch 'tech/ci-autotest' into HEAD 2021-11-02 17:39:13 +08:00
MrZ626
0e13883faf 修改更新历史和build号 2021-11-02 17:21:36 +08:00
MrZ626
e8860eda1b 消除超过6行时部分语言会小字显示消的行数 2021-11-02 17:21:36 +08:00
MrZ626
33ba4820b3 音效室补充消除音效 2021-11-02 17:21:36 +08:00
MrZ626
5ed0dda8ab 修改一处中文语言里的BGM忘了改 2021-11-02 17:21:36 +08:00
MrZ626
bd260b2c6f 消除所有填满行的函数整理为玩家类的clearFilledLines方法
添加消7~20和20+的消除文本与消除音效
播放消n音效打包为函数移至gameFuncs文件
2021-11-02 17:21:36 +08:00
MrZ626
aa01ab07f7 英文词典补充一条翻译
Co-authored-by: C29H25N3O5 <a1228465111@163.com>
2021-11-02 17:21:35 +08:00
MrZ626
684cb90a7d 修改堆叠模式玩法(自动清除之前记录)
修改更新历史和build号
2021-11-02 03:38:43 +08:00
MrZ626
172101ed55 整理玩家类代码,再分离出一个方法 2021-11-02 02:27:08 +08:00
MrZ626
98b5914726 移除机翻语言的tips 2021-11-02 02:15:34 +08:00
MrZ626
d1518e7ba4 词典新增研究群下属mew词条 2021-11-02 00:31:43 +08:00
MrZ626
72d4faa52a 微调进控制台音效力度 2021-11-01 21:56:57 +08:00
MrZ626
862dcbf806 准备&开始音效改为函数整理到gameFuncs文件里
launchpad可以执行任意函数,添加准备-开始音效
2021-11-01 20:30:04 +08:00
MrZ626
3db28f5136 再修正ci替换版本号的问题 2021-11-01 17:33:42 +08:00
MrZ626
f9e37f3c6a 修正ci替换版本号的小问题 2021-11-01 17:24:47 +08:00
MrZ626
457681e6ec 中英tips调整 2021-11-01 16:26:34 +08:00
MrZ626
904bcf6852 版本号改为0.16.4,移除@DEV标记(需要测试) 2021-11-01 15:52:23 +08:00
MrZ626
e21e57ff84 添加tip命令方便看tips 2021-11-01 14:51:40 +08:00
MrZ626
562a69831a 给中英tip排序 2021-11-01 14:32:26 +08:00
C29H25N3O5
706a683540 修正标点, .gitignore添加几个文件类型 2021-11-01 14:13:08 +08:00
C29H25N3O5
8e2aee5e84 再改语言文件 2021-11-01 14:13:08 +08:00
Trebor-Huang
c009893377 New part in Zframework 2021-11-01 10:14:09 +08:00
Trebor-Huang
3ae128d4c3 Revert init.lua 2021-11-01 10:00:39 +08:00
Trebor-Huang
cb2164c21d Fix string bug 2021-11-01 09:57:12 +08:00
Trebor-Huang
951b7407fc Keep up the pace 2021-11-01 09:52:41 +08:00
MrZ626
f68facbe0e 检测到启动参数有--test时启动测试脚本(需要更多测试)
Co-authored-by: Trebor Huang <41145779+Trebor-Huang@users.noreply.github.com>
2021-11-01 03:41:19 +08:00
MrZ626
5535366bb1 TASK模块创建任务第一次执行的时候也用assert保证错误被捕捉 2021-11-01 03:23:00 +08:00
Imple Lee
d75b709f23 Move Python code from updateVersion.py into action.ymls directly (#423)
* test python3

* try use `python` instead of `python3`

* use `update-version` everywhere

* fix variable injection

* fix python2vs3

* move `updateVersion.py` into action files
2021-11-01 02:12:32 +08:00
Trebor Huang
5a1fd0ca4d Correct semantic merge 2021-11-01 01:43:05 +08:00
Trebor Huang
f4b85e0dbb Merge branch 'main' into ci-autotest 2021-10-31 23:51:40 +08:00
Trebor-Huang
c38bceb87e Yay it works 2021-10-31 23:38:15 +08:00
Trebor-Huang
2569e8844e Test dummy failure 2021-10-31 23:36:44 +08:00
Trebor-Huang
e42fa8351e Can't get xvfb to return the correct value? 2021-10-31 23:35:12 +08:00
Trebor-Huang
9582a625ff Add shell 2021-10-31 23:20:33 +08:00
Trebor-Huang
81abb06f7b Add shell 2021-10-31 23:19:04 +08:00
Trebor-Huang
7cfea0eebe Try using composite 2021-10-31 23:15:57 +08:00
Trebor-Huang
01c2bfe955 Remove uneccesary needs 2021-10-31 22:51:12 +08:00
Trebor-Huang
70242e6a07 Add some more utils 2021-10-31 21:23:54 +08:00
Trebor-Huang
c1edba974f Maybe update first 2021-10-31 20:47:23 +08:00
Trebor-Huang
546b3f230d Prepare PulseAudio 2021-10-31 20:45:23 +08:00
Trebor-Huang
14593eb487 Okay ubuntu doesn't allow gui either 2021-10-31 20:27:03 +08:00
Trebor-Huang
838621a3ae Try without xvfb first 2021-10-31 20:23:34 +08:00
Trebor-Huang
283d4a5fce Test xvfb 2021-10-31 20:04:54 +08:00
Trebor-Huang
490cf44132 Change iOS ci condition 2021-10-31 19:41:36 +08:00
Trebor-Huang
9dcbd86fc3 Implement auto test 2021-10-31 19:03:05 +08:00
MrZ626
0a15011ec7 修复模式目录下非完整模式文件也会被当成模式加载 2021-10-31 02:03:54 +08:00
ParticleG
f7dfe1d869 - Re-enable other workflows 2021-10-31 00:39:54 +08:00
ParticleG
5e9c9cb5fa - Try use discordrb 2021-10-31 00:39:52 +08:00
MrZ626
c485c26c93 修改更新历史和build号 2021-10-31 00:34:49 +08:00
MrZ626
137d9296cd 移除一个TODO的注释 2021-10-30 15:57:34 +08:00
MrZ626
11b144da74 词典场景按键也会自动开始输入 2021-10-30 15:36:56 +08:00
MrZ626
25ef9d9886 再调整中英两个词典 2021-10-30 15:02:11 +08:00
MrZ626
0e1e279209 游戏界面布局微调:录像播放时单独一套;模式名文本太长的时候会横向压缩 2021-10-30 14:48:19 +08:00
C29H25N3O5
a960897a83 字体加几个新的 Unicode 字符 2021-10-30 14:33:03 +08:00
C29H25N3O5
69ab7849c5 英文词典补完 2021-10-30 14:33:03 +08:00
MrZ626
bc55c3d892 中文词典添加are和line are两个词条,英文词典添加几个todo 2021-10-29 16:01:42 +08:00
MrZ626
cee1c41c35 修改更新历史和build号 2021-10-29 02:24:34 +08:00
MrZ626
6c5fe2463e 微调评级图标颜色 2021-10-29 02:24:15 +08:00
MrZ626
880ce376b3 next槽上方会显示序列模式的标记 2021-10-29 02:07:24 +08:00
MrZ626
5a8b573bb7 修正SFX播放采样低了两个半音 2021-10-29 01:01:54 +08:00
C₂₉H₂₅N₃O₅
ab1e750fa4 微调 yygq 文本 (#419) 2021-10-28 23:56:36 +08:00
MrZ626
f6f4e1cd1a 游戏设置菜单按钮颜色根据平台引导 2021-10-28 15:04:00 +08:00
MrZ626
2a9549b106 自定义场地消行按钮可以消除20行以上的部分
移除测试用代码
2021-10-28 14:49:13 +08:00
MrZ626
1ed7ee3952 整理代码 2021-10-28 14:34:28 +08:00
MrZ626
a69fc35f5a 修改TRS的JL踢墙表的0-R和R-0最后几项 2021-10-28 12:08:38 +08:00
MrZ626
28e83dcf02 词典两个按钮改为图标 2021-10-28 02:34:57 +08:00
MrZ626
8c6df74237 计算器可以弹琴了 2021-10-28 02:34:57 +08:00
C₂₉H₂₅N₃O₅
d86cd6a8c6 Updated English Zintionary and legals.md (#417)
* 更改词典, 调整苹果设备基线不对的问题

* 微调字体

* 添加复制符号, 可用于词典

* 添加新符号定义

* 更新词典和 legals

* 再更新 legals

* Update legals.md

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-10-28 02:18:42 +08:00
ParticleG
c40d411d63 - Finished touching 2021-10-27 17:14:42 +08:00
C₂₉H₂₅N₃O₅
aca63abf49 Multiple Enhancements (See Comments) (#415)
* 更改词典, 调整苹果设备基线不对的问题

* 微调字体

* 添加复制符号, 可用于词典

* 添加新符号定义

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-10-27 13:17:36 +08:00
MrZ626
4733615c4b 中文词典添加欠债词条
修正一处小错误
2021-10-27 13:11:57 +08:00
MrZ626
80e5469653 修复第二次进词典就爆炸 2021-10-27 02:18:39 +08:00
MrZ626
4ea2cb18c7 整理代码,修复应用语言加载TEXTOBJ时有个特殊的文本对象会弹出警告 2021-10-27 01:21:15 +08:00
MrZ626
840be65198 修改ios退出提示文本 2021-10-27 01:14:52 +08:00
MrZ626
5a568df6cd 控件名字符串改用单引号 2021-10-27 01:03:15 +08:00
MrZ626
cf57161174 移除语言模块里有个默认返回按钮文本 2021-10-26 20:55:18 +08:00
MrZ626
7847e72f63 语言文件真正缺失文本时不会蓝屏了 2021-10-26 20:54:41 +08:00
MrZ626
00999426b9 关闭主页机器人追帧,防止挂后台回来后失去同步 2021-10-26 16:33:19 +08:00
MrZ626
188da8b6ff 修改更新历史和build号 2021-10-26 14:21:27 +08:00
MrZ626
59182b0ec8 第一帧启动时间可以通过控制台log命令查看 2021-10-26 14:17:25 +08:00
MrZ626
6ced935c22 修正log模块时间格式不好 2021-10-26 14:16:52 +08:00
MrZ626
ad50475bb6 修正计算器键盘不能输入乘号和符号e不能正常工作的问题 2021-10-26 13:54:00 +08:00
MrZ626
9c40f4918c 修正uttt小程序触屏不响应 2021-10-26 11:26:12 +08:00
MrZ626
62c802d2c3 暂时取消存档导入时的版本限制 2021-10-26 11:12:33 +08:00
MrZ626
3294760f6d 中文语言标点修改 2021-10-26 11:04:22 +08:00
MrZ626
85d72a1ee5 再微调wing背景 2021-10-26 11:04:21 +08:00
C29H25N3O5
e02bb0f23c Multiple Enhancements (See comment) (#413)
* 更改wings背景, 看起来更像翅膀

* 规范中文标点(顺便改不对的tips)

* 字体添加缺少的几个拼音字母
2021-10-26 11:04:21 +08:00
MrZ626
b0465775dc fix ios subversion 2021-10-26 02:15:43 +08:00
Particle_G
bd4b28e052 Rel ci test (#412)
* - Test iOS release

* - Fix wrong grammar

* - Try release CI

* - Modify window size

* - Try with discord webhook

* - Finish test
2021-10-26 01:33:50 +08:00
Trebor Huang
c6c5c849b4 Dmg ameliorate (#408)
* Add `dmg` background

* Eyeball coordinates

* Add dmg icon

* Delete dmg-background.png

* Change background

* Change resources

* Fix line break

* 词典的命令行词条补充一些

* 屏蔽词典敏感词
词典场景代码简化(无需性能场景,更易读)

* Update dict_en.lua (#410)

I've personally never seen the game being referred to as Tetris Tour. In most places, including Tetris.com, it's referred to as Tetris Journey; TapTap once referred to it as Tetris Adventure.

* 修复生成AI玩家时没刷新20G开关

* 再减少一点框架依赖

* 修改BGM模块的初始化log
简单统计启动第一帧各个阶段加载时间

* 修改更新历史和build号

* - Testing CI

* - Change CI name

* - Update badge

* - Pass version number to fastlane

* - Modify build number

* - Try more dots

* - Add send email support

* - Give up using email to notify

* -  Only test macos

* - Skip sign and notarize

* - Change position

* - Modify window size

* - Slighty move icons

* - Re-enables other stuffs

Co-authored-by: MrZ626 <1046101471@qq.com>
Co-authored-by: user670 <22617255+user670@users.noreply.github.com>
Co-authored-by: ParticleG <particle_g@outlook.com>
2021-10-25 21:06:11 +08:00
MrZ_26
cc5c3db1c1 Merge pull request #411 from 26F-Studio/pre-ci-test
iOS Testing workflow
2021-10-25 16:57:19 +08:00
MrZ626
f60236f06e 修改更新历史和build号 2021-10-25 16:19:59 +08:00
MrZ626
bd63584207 修改BGM模块的初始化log
简单统计启动第一帧各个阶段加载时间
2021-10-25 16:00:56 +08:00
ParticleG
e5fd3f6c9f - Give up using email to notify 2021-10-25 15:58:03 +08:00
MrZ626
423173413f 再减少一点框架依赖 2021-10-25 15:45:20 +08:00
MrZ626
a136d01da5 修复生成AI玩家时没刷新20G开关 2021-10-25 15:37:20 +08:00
user670
8ab675baf0 Update dict_en.lua (#410)
I've personally never seen the game being referred to as Tetris Tour. In most places, including Tetris.com, it's referred to as Tetris Journey; TapTap once referred to it as Tetris Adventure.
2021-10-25 15:23:29 +08:00
ParticleG
8d8e537cd4 - Add send email support 2021-10-25 14:15:48 +08:00
MrZ626
d3b117a23f 屏蔽词典敏感词
词典场景代码简化(无需性能场景,更易读)
2021-10-25 13:01:34 +08:00
MrZ626
007982c481 词典的命令行词条补充一些 2021-10-25 11:19:37 +08:00
MrZ626
ff9b0abfc7 两个manual文件改为txt格式
说明书和法律信息场景找不到文件不会爆炸了
2021-10-25 05:09:32 +08:00
MrZ626
275e983f55 错误场景的退出按钮改为直接强制退出游戏 2021-10-25 05:02:46 +08:00
MrZ626
bccb0b9976 添加legals页面 2021-10-25 04:57:29 +08:00
MrZ626
d5f01537f8 iOS设备不显示收款码 2021-10-25 04:56:47 +08:00
MrZ626
6029363af8 微调launchpad的ui 2021-10-25 04:31:33 +08:00
MrZ626
cde61a57b8 修正两个词典的格式问题 2021-10-25 04:31:33 +08:00
C29H25N3O5
2fc1768a7a 更新词典和 legals (#407) 2021-10-25 04:28:46 +08:00
ParticleG
50d73bcc1e - Try more dots 2021-10-25 00:28:41 +08:00
ParticleG
0f570be7e5 - Modify build number 2021-10-24 23:54:16 +08:00
ParticleG
658e6f7fdd - Pass version number to fastlane 2021-10-24 22:06:30 +08:00
MrZ626
d651932d9a 修改更新历史和build号 2021-10-24 21:52:46 +08:00
ParticleG
6167c9f317 - Update badge 2021-10-24 20:45:45 +08:00
ParticleG
33acf06a71 - Change CI name 2021-10-24 20:19:18 +08:00
ParticleG
9833e759cc - Testing CI 2021-10-24 20:15:43 +08:00
ParticleG
918bb09d54 - Update CI badge 2021-10-24 19:38:10 +08:00
MrZ_26
9a0a396872 Merge pull request #406 from 26F-Studio/ci-dmg
CI functionality for iOS and macOS
2021-10-24 19:09:13 +08:00
MrZ626
6c6dc654e6 修正一处容易歧义的设置文本 2021-10-24 17:30:54 +08:00
MrZ626
00c0cc3d9e 修正之前不小心把电脑隐藏翻页按钮删了没改回去 2021-10-24 17:14:58 +08:00
MrZ626
0eb0fd3311 中文词典添加新词条
整理部分标点
2021-10-24 17:14:40 +08:00
ParticleG
4e3823616d - Update variables 2021-10-24 16:06:23 +08:00
ParticleG
7450bae6d2 [no ci] Rearrange names and descriptions 2021-10-24 15:37:33 +08:00
ParticleG
a2ddaf5341 [no ci] Modify variable names 2021-10-24 15:00:06 +08:00
Trebor-Huang
b266a0ae57 Dubious Bundle ID 2021-10-24 13:18:07 +08:00
Trebor-Huang
ac9e649e02 Integration into current CI files 2021-10-24 13:06:29 +08:00
Trebor-Huang
506e1a4c1d Use *.dmg format to distribute on macOS
Pack up dmg files

Cooperate with fastlane config

Fix directory

Put off notarization

Diagnose dmg

Try notarize

Check notarize

Duh Fix

Better codesigning

Last try
2021-10-24 13:06:11 +08:00
YunyushuLiu
c9d74a4cdf Follow up macOS CI
- Update macOS CI to use flatlane

- Test macOS

- Use Github tokens

- Pass MATCH_PASSWORD

- Fix wrong path

- Update keychain file

- Change keychain path

- Update macOS release

- Triggered on release, not main

- Try notarize macOS app

- Triggered on test branch

- Triggered by release

- Rename lane names to avoid infinite recurse

- Init dev workflow

- Triggered by tags

- Rename workflow name

- Update workflows

- Allow all tags

- Fix on

- Add codesign options

- Add missing =

- Update options

- Test sign

- Fix options

- Update macOS template
- Use identifier

- Fix minor issues

- Try not notarize

- try not sign package

- Try sign without runtime option

- Try notarize without runtime option

- Use entitlements

- Add back runtime option

- Pack the whole directory to see what happened

- Chmod +x love

- Try with strict and print app info

- Change step order

- Break into two step

Zip first with `ditto`.

Push back zipping

Don't check the `zip` file

Stop zipping it over and over and over and over

Try zipping right
2021-10-24 13:05:51 +08:00
YunyushuLiu
0ff2e6e273 Implement iOS CI
- Update for multiple targets

- Fix wrong lane

- Update Dev CI

- Rename scheme

- Test ad-hoc

- Enable other runs

- Try use if

- Fix missing shell property

- Fix if

- Add change log support

- Update apple key

- Test Release

[no ci] fix grammar

- Release test

- Only test release

- New build

- Test rename in fastfile

- Move right ipa

- Finish touching
2021-10-24 13:05:35 +08:00
MrZ626
c4c6ab3130 删除ci中对不存在的document文件夹的操作 2021-10-24 04:46:51 +08:00
MrZ626
bc5b7638db 修改更新历史 2021-10-24 04:45:56 +08:00
MrZ626
2db147461c iOS设备震动函数改为输入1|2|3三档而不是时间(适配自改love,原版love都是固定振动)
框架不再使用不属于自己的SYSTEM的变量
2021-10-24 04:45:34 +08:00
MrZ626
716c44746b wing背景优化(水晶比例设计:C29H25N3O5) 2021-10-24 04:31:05 +08:00
MrZ626
0278a3ad47 miku语音小修正 2021-10-24 03:33:24 +08:00
MrZ626
3601047ffb 调整模式地图右下角区域 2021-10-24 03:05:56 +08:00
MrZ626
8013319c14 完善词典的复制按钮 2021-10-24 02:46:04 +08:00
MrZ626
b4f14bcb5b das介绍和设置指导词条拆成两段 2021-10-24 02:09:31 +08:00
MrZ626
406beab9d6 词典新增复制页面功能,方便查好发送给别人 2021-10-24 01:51:41 +08:00
MrZ626
58a8828503 赞助列表加一个人 2021-10-24 01:47:22 +08:00
MrZ626
fd563b732c 整理代码 2021-10-24 00:48:51 +08:00
MrZ626
30093f9db5 readme添加github维基页面 2021-10-22 19:56:50 +08:00
MrZ626
2f16c54cde legals文件放到根目录 2021-10-22 17:42:37 +08:00
MrZ626
bca7f2e19b 整理代码
修改更新历史
2021-10-22 16:56:42 +08:00
MrZ626
2696106f96 文档移至github的wiki功能 2021-10-22 16:54:58 +08:00
MrZ626
9f7692f91c skin模块升级 2021-10-22 16:09:56 +08:00
MrZ626
48b2ff5416 微调TRS的R块踢墙表 2021-10-22 16:06:05 +08:00
MrZ626
81104d7004 修改更新历史 2021-10-22 02:08:23 +08:00
MrZ626
b56103f247 新增简单等级图标组(暂时显示不出其他) 2021-10-22 01:47:58 +08:00
MrZ626
0923cf3acf 修改部分语言的id
修正原yygq语言词典是英文的问题
2021-10-21 23:58:11 +08:00
MrZ626
fffb7d0188 极简率评级改为灰色 2021-10-21 21:45:41 +08:00
MrZ626
f02124de0c 再调整准备开始音效 2021-10-21 21:39:47 +08:00
MrZ626
a1a77f291b 几个文件的中文标点换成全角 2021-10-21 20:52:26 +08:00
MrZ626
31bb7f62c6 移除打击垫的准备&开始音效 2021-10-21 20:20:25 +08:00
MrZ626
bfb5fc3f5e 游戏设置场景不再需要滚动 2021-10-21 16:37:16 +08:00
MrZ626
ac2e53adc7 修复“应用全屏”函数实际含义为反转全屏状态 2021-10-21 16:33:46 +08:00
MrZ626
46e8e161d0 修改版本号和更新历史 2021-10-21 15:51:51 +08:00
MrZ626
68e2255e1b 修改进控制台音效 2021-10-21 15:51:51 +08:00
MrZ626
222c1b5bba SFX.playSample支持同时播放多个采样(两种参数格式) 2021-10-21 15:51:51 +08:00
MrZ626
59c63da36f 整理代码
添加一个小工具函数
2021-10-21 15:51:51 +08:00
MrZ626
89fb7a7659 微调资源加载,整理代码,多一点点log 2021-10-21 15:51:50 +08:00
C29H25N3O5
ea02bc470a Added IPA Symbols and optimised CJK punctuations (#401)
* 增加控制器符号

* 增加新符号, 所有标点改成半角

* 剩余两个文档也都改成 Markdown 格式

* 字体新增基础 IPA 符号

* 增加 IPA 字符, 中文标点使用开明式
2021-10-21 13:54:23 +08:00
MrZ626
361dc576f3 准备-开始音效使用乐器采样 2021-10-21 02:53:51 +08:00
MrZ626
395ad907b8 添加三个简单乐器采样包并加载(之后用于替换部分音效) 2021-10-21 02:53:51 +08:00
MrZ626
bf5cdb1b99 SFX模块新增采样功能(初步)
添加loadSample和playSample方法
2021-10-21 02:53:50 +08:00
MrZ626
45f9c80888 重做连击音效
重新导出部分音效
2021-10-21 02:53:49 +08:00
Particle_G
b80a72785b Ci ios (#399)
*Bunch of ci-ios thing*

Co-authored-by: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Co-authored-by: Trebor-Huang <2300936257@qq.com>
Co-authored-by: Trebor Huang <41145779+Trebor-Huang@users.noreply.github.com>
Co-authored-by: YunyushuLiu <kunluntree@qq.com>
Co-authored-by: MrZ626 <1046101471@qq.com>
Co-authored-by: 梦飞翔 <1149761294@qq.com>
2021-10-21 02:49:29 +08:00
MrZ626
20ab916f9c SFX模块升级 2021-10-20 16:43:07 +08:00
MrZ626
76bfaa870e 控件模块不再依赖TABLE扩展模块 2021-10-20 16:18:04 +08:00
C29H25N3O5
10ed702c2e Changed the other two documents to markdown format (#396)
* 剩余两个文档也都改成 Markdown 格式
2021-10-20 13:09:48 +08:00
Particle_G
e236be7a62 Ci ios (#395)
* merge get-cc-url into get-version

* add `get-cc`

* remove `apt update`

* rename `get-version` -> `get-info`

* rm unnecessary file

* - Add support for ios
- Fix missing top folder for macos

* - Fix directory names

* - Fix with binary r/w

* iOS的plist文件先转换为明文

* add IOS

* 整合新action

* Finishing touch

* Update action.yml

* Test chmod

* - Xcode build test

* - Build with default keychain

* - Test iOS only

* - Use macos-11

* - Change keychain operations' sequence

* - Allow provisioning updates

* - Set build directory

* - Specify build path

* - Pack bare app

* - Add quiet option

* 测试:输出touchrelease位置

* - Test with ad hoc cert

* - Fix wrong variable

* - Use Release instead of Distribution

* - Chmod CCloader to add execute permission

* 继续测试ios触屏问题

* 继续测试ios触屏问题

* - Use macos latest
- Re-enable other runs

* - Sign CCloader after build

* - Remove redundant inputs in build.yml

* - Install test

* - Export test

* - install test

* - Try fastlane

* - Use builtin ruby

* - CI Test

* - Update python script to fix ios versioning

* - Use static lib

* - Test static cc

* - Fix locations

* Update readme.md

Co-authored-by: Imple Lee <80144331+ImpleLee@users.noreply.github.com>
Co-authored-by: Trebor-Huang <2300936257@qq.com>
Co-authored-by: Trebor Huang <41145779+Trebor-Huang@users.noreply.github.com>
Co-authored-by: YunyushuLiu <kunluntree@qq.com>
Co-authored-by: MrZ626 <1046101471@qq.com>
Co-authored-by: 梦飞翔 <1149761294@qq.com>
2021-10-20 13:07:51 +08:00
MrZ626
2fbd183322 整理代码
规范更多全局变量名
语音包/音效包列表声明放到main开头
2021-10-20 01:21:01 +08:00
MrZ626
14df29ce21 修正中文词典一处词条名错误 2021-10-19 19:22:12 +08:00
MrZ626
cb3d9e4862 整理代码 2021-10-19 19:19:12 +08:00
MrZ626
d9a82878bf 移除组合键切换攻击模式功能,固定为单点切换
微调游戏设置菜单
2021-10-19 19:00:02 +08:00
MrZ626
e484bef6df md语法翻新voice文档
Co-authored-by: C29H25N3O5 <87485746+C29H25N3O5@users.noreply.github.com>
2021-10-19 17:12:11 +08:00
MrZ626
c8d358cc64 新增两条中英tip 2021-10-19 00:01:18 +08:00
MrZ626
013765d5d2 touching变量移入SCN模块
修复iOS上经常卡掉第一个触摸导致后续不能和控件交互
2021-10-18 23:45:03 +08:00
MrZ626
ed2b07d5cf 自定义场地的按钮应用定制字体 2021-10-18 19:49:34 +08:00
C29H25N3O5
8d0780cef4 Added more symbols to the font and changed all the punctuations to half-width (#392)
* 增加控制器符号

* 增加新符号, 所有标点改成半角
2021-10-18 19:21:54 +08:00
MrZ626
2ba25014c6 utf8解码报错后会提示windows用户换一个游戏版本 2021-10-18 16:33:50 +08:00
MrZ626
033a770759 更多全局变量改为全大写 2021-10-18 15:12:56 +08:00
MrZ626
b7832c133a 微调代码规范变量名格式说明 2021-10-18 15:12:56 +08:00
MrZ626
93af618fa0 启动时会遍历所有模式文件补充不在地图上的模式 2021-10-18 15:05:35 +08:00
MrZ626
d4539c3a23 修改加载SHADER的时机 2021-10-18 15:05:35 +08:00
MrZ626
3d70a5ac79 检测资源文件是否来自工程的过程改为函数 2021-10-18 15:05:34 +08:00
Trebor Huang
f40b2f75bd Move help file to correct place 2021-10-18 02:16:41 +08:00
Trebor Huang
46a49050b9 Fix vulneribility 2021-10-18 02:00:26 +08:00
Imple Lee
fb4fd15687 fix release name in release.yml (#390) 2021-10-18 01:27:16 +08:00
MrZ626
f3e18de45f release note符合markdown语法,方便阅读 2021-10-18 00:28:12 +08:00
MrZ626
fd3b187d32 修正文本框控件长度限制判定问题 2021-10-18 00:20:15 +08:00
MrZ626
820b555924 修改更新历史和build号 2021-10-18 00:13:15 +08:00
MrZ626
f8a0e67a2e 添加一堆tips 2021-10-18 00:10:15 +08:00
MrZ626
99e77969ad 给一些联网相关的输入框添加输入长度限制 2021-10-17 23:44:49 +08:00
MrZ626
fdb6276869 输入框控件可以设置长度限制了 2021-10-17 23:39:34 +08:00
MrZ626
221e252acb 修改一处无意义代码
移除忘了删的调试代码
2021-10-17 23:25:57 +08:00
MrZ_26
dea01ffed6 Ci getversion (#389)
* 修正release获取版本名的小错误

* 整理getVersion.lua
tab换成空格后没有修改
2021-10-17 23:13:16 +08:00
MrZ626
166769e7e1 修改更新历史和build号 2021-10-17 18:34:07 +08:00
MrZ626
86d3314cb2 取消单挑模式垃圾行缓冲上限 2021-10-17 18:12:12 +08:00
MrZ626
13a08298b7 cubefield小游戏不再能卡时间间隔 2021-10-17 17:02:33 +08:00
MrZ626
66d2323626 修改单挑l和u难度的评级条件为剩余命数 2021-10-17 16:01:10 +08:00
C29H25N3O5
cd432e3b3f 增加控制器符号 (#388) 2021-10-17 14:48:53 +08:00
MrZ626
cbf73f5194 添加启动时自动登录开关 2021-10-17 14:24:43 +08:00
C29H25N3O5
5cd03f40f6 更新legals, 增加 S 评级符号 (#385) 2021-10-17 14:24:40 +08:00
Imple Lee
25b5f53f34 update cc-related CI (#387)
* merge get-cc-url into get-version

* add `get-cc`

* fix

* fix again

* fix

* fix

* fix macos

* remove `apt update`

* fix macos

* rename `get-version` -> `get-info`

* rm unnecessary file
2021-10-17 14:23:36 +08:00
MrZ626
f9902a6ea5 框架允许自定义失去焦点时执行的操作 2021-10-17 01:13:10 +08:00
MrZ626
0099bf53cb 整理代码,框架更独立 2021-10-17 00:49:35 +08:00
MrZ626
e6a8cf7a10 三个音频模块升级不再依赖全局变量SETTING
但更新音量的时候必须需手动调用setVol
整理代码
2021-10-16 23:10:15 +08:00
MrZ626
9b6855b424 修正玩家时间计算错误 2021-10-16 18:24:14 +08:00
MrZ626
6df8383580 中文添加一些tips 2021-10-16 17:26:27 +08:00
MrZ626
b12663f404 应用新的定制字符
移除不需要的贴图素材
2021-10-16 15:23:47 +08:00
C29H25N3O5
66d3df0c10 Added more symbols to the customised font (#376)
* 字体新增评级字符, 调整 staff 表, 更新 legals

* 增加新符号定义

* 增加回放速度相关的字符
2021-10-16 14:53:01 +08:00
MrZ626
a61e74c004 移除一个不再需要的小贴图 2021-10-16 03:37:43 +08:00
MrZ626
3d0a39dd34 所有要二次确认的按钮都改为左上角提示而不是显示问号
移除确认用问号贴图
2021-10-16 02:59:07 +08:00
MrZ626
6f643b8a1b 自定义序列文本框渲染改用定制字符,略微优化性能 2021-10-16 02:50:37 +08:00
MrZ626
d39cc71240 29个方块名字的列表上升为全局变量 2021-10-16 02:47:34 +08:00
C29H25N3O5
501fab147d 字体新增评级字符, 调整 staff 表, 更新 legals (#375) 2021-10-16 02:21:49 +08:00
MrZ626
6ee6cd7a1e 修改techrash_u,tsd_h,tsd_u的列标记颜色 2021-10-16 02:05:01 +08:00
MrZ626
7d5586d9a1 补充中文词典next和hold的词条 2021-10-16 01:46:38 +08:00
MrZ626
db78d713e7 调整统计界面
修正词典几处°用成了上标o
2021-10-15 22:26:26 +08:00
MrZ626
ece5dfb799 微调简洁主菜单 2021-10-15 01:43:48 +08:00
MrZ626
1cb6b82f25 小程序atoz支持仅键盘操作 2021-10-15 01:31:41 +08:00
MrZ626
b0728650df 修改自定义序列随机包的按钮
修改一个定制字符名
整理代码
2021-10-15 01:27:48 +08:00
MrZ626
48b4049d90 英文词典第一个词条添加参与翻译的github链接
Co-authored-by: user670 <22617255+user670@users.noreply.github.com>
2021-10-15 01:16:49 +08:00
Imple Lee
7f8efcdf41 move some work into independent jobs (#366)
* change build branch in build.yml

* try with get-version

* fix get-version

* fix get-version again

* try use get-version everywhere

* use apt upgrade again

* fix get-version again

* fix get-version again

* fix get-version again

* fix get-version again

* independent get-cc-url

* fix get-cc-url

* remove 2 useless commands

* try action

* try fix action

* try action

* use get-unzip

* try windows build

* fix build-windows

* fix build-love

* try build-linux

* add shell in build-linux

* put `commit id` into `get-version`

* fix `updateVersion.py -T Version`

* try build-android

* add shell into `build-android`

* move away android signing from build-android

* apply build-android on android mini

* gain snapshot action

* fixes

* fix build-love

* use build-macos

* put more into build-android

* fix build-android

* put more into build-macos

* fix

* fix

* ci: use preinstalled ndk (#367)

* fix apk location

* move `rename` into `build-android`

* fix `build-android`

* rename variable; remove a level of zips in macOS

* shallow clone

* remove tons of `./`s

* fix icon in windows and linux

* reorganize build-android

Co-authored-by: 梦飞翔 <1149761294@qq.com>
2021-10-15 01:06:17 +08:00
MrZ626
dfa356e9d9 完善FILE.load的使用
重点修正几个string模式保存的文件的读取,以防刚好符合其他格式自动判断的条件
2021-10-15 01:04:00 +08:00
MrZ626
964537219a FILE.load函数可以指定读取方法,建议使用以防自动识别失效 2021-10-15 01:01:11 +08:00
MrZ626
07eecc860f 继续替换一些菜单里的图标为字体内图标 2021-10-15 00:47:06 +08:00
MrZ626
faf25008f9 退出房间的时候不再等待服务器返回成功消息 2021-10-15 00:15:48 +08:00
MrZ626
116a3563bb 再整理更新历史 2021-10-14 20:16:48 +08:00
MrZ626
6880c88301 微调staff表 2021-10-14 20:16:30 +08:00
MrZ626
8590f4c383 继续替换一些菜单里的图标为字体内图标 2021-10-14 20:06:31 +08:00
MrZ626
ff1e034a87 添加两个新bgm,修改一些模式的bgm配置 2021-10-14 19:43:18 +08:00
C29H25N3O5
b36948cf30 Add more symbols to the font (#374)
* 微调旧符号, 新增缺少符号

* 对齐, 对齐
2021-10-14 19:43:56 +08:00
MrZ626
c01df71fd4 修改更新历史和build号 2021-10-14 02:34:49 +08:00
MrZ626
7d90571d50 替换大量图标和一些文本为定制字体里的字符,移除TEXTURE模块对应画布 2021-10-14 02:26:39 +08:00
MrZ626
0cc7e121c8 添加一个版权说明文件(不是最终确定版,未来可能会补充或改动) 2021-10-14 01:17:10 +08:00
MrZ626
060cdbbf51 调整launchpad按钮样式 2021-10-14 00:56:13 +08:00
C29H25N3O5
769a654ed6 增加字体内其他字符的定义 (#373) 2021-10-14 00:55:49 +08:00
C29H25N3O5
469899e8eb Added new characters in Private Use Area A in the font file (#372)
* 新字体私用区A增加游戏内字符

* 增加缺少的字符
2021-10-13 23:39:04 +08:00
MrZ626
024e0df8e1 launchpad添加显示标签选项 close #365 2021-10-13 12:58:17 +08:00
MrZ626
7603829942 修正每次进入主菜单时部分参数未完全重置(例如设置的方块颜色) close #368 2021-10-13 12:11:02 +08:00
MrZ626
ad91ac9c93 LOG模块会顺便print一下 2021-10-13 11:39:28 +08:00
MrZ626
7a22dead81 添加一个自制字体要用到的字符集合小模块(非框架模块,顺序未最终确定) 2021-10-13 11:25:36 +08:00
MrZ626
73bc5dd30e 调整string扩展模块utf8转码函数 2021-10-13 09:07:59 +08:00
MrZ626
154157b976 字符串扩展模块新增hex转utf8方法 2021-10-13 01:08:06 +08:00
MrZ626
c5551a1b64 减少内部next到十个 2021-10-12 19:31:22 +08:00
MrZ626
0d292446a2 修正显示额外next时用的颜色为那个方块真正的颜色(而不是玩家当前设置) close #370 2021-10-12 19:31:08 +08:00
MrZ626
7ba0d0d3a0 修复使用过tas后mod菜单会显示unranked close #371
优化mod菜单unrank刷新时机计算
2021-10-12 19:16:17 +08:00
MrZ626
88bd9216d0 微调配音参考文档 2021-10-12 13:55:34 +08:00
MrZ626
d8b728a6b3 框架添加setOnFnKeys方法允许重定义devmode下功能键的功能(仅限F1~F7) 2021-10-12 13:49:27 +08:00
MrZ626
26acecb8e4 修改更新历史和build号 2021-10-12 02:23:44 +08:00
MrZ626
b64234a7a3 添加techrash_n模式入口 2021-10-12 02:23:09 +08:00
MrZ626
1ca5fd7204 添加一个无位置限制的消四模式 2021-10-12 02:19:06 +08:00
MrZ626
6868d53224 允许运行中加载模式文件(仅限不在地图上的,故目前只用于彩蛋模式)
移除所有隐藏模式的名称翻译,只认内部名
2021-10-12 01:59:42 +08:00
MrZ626
993866ab5b 大量master模式参数移入规则包
彻底移除历史遗留的L和U难度
2021-10-11 02:00:30 +08:00
MrZ626
3eddb524d0 修改防守模式难度曲线(之前的录像不再能正常播放) 2021-10-11 01:43:34 +08:00
MrZ626
956316c327 生存模式和进攻模式添加胜利条件 2021-10-11 01:37:36 +08:00
MrZ626
88ff734ec7 修改更新历史和build号 2021-10-10 03:36:04 +08:00
MrZ626
3fb6b34a1e 添加techrash_u模式入口 2021-10-10 03:35:18 +08:00
MrZ626
81a4429767 落块超出场地高度后死亡不直接调用lose 2021-10-10 03:30:15 +08:00
MrZ626
73bf974b1c 添加一个禁同列消四的模式 2021-10-10 03:29:16 +08:00
MrZ626
693fb9f43f 修正评级字母改了后解锁提示忘了改 2021-10-10 00:37:22 +08:00
MrZ626
b3e65aea9f 修正加载模式图标的一处错误 2021-10-09 19:36:16 +08:00
MrZ626
bb149f9890 微调马拉松图标,整理代码 2021-10-09 14:25:41 +08:00
MrZ626
26d2c8188d 中文词典添加/修改几个序列生成的词条
修改几处标点
2021-10-09 12:04:57 +08:00
MrZ626
051d45edce 整理代码 2021-10-09 11:19:36 +08:00
C29H25N3O5
6e35d7683c 修改字体缺少字符, 添加 Licence, 更正 baseline (#364) 2021-10-09 10:54:27 +08:00
MrZ626
da405793da 修改更新历史和build号 2021-10-09 01:58:33 +08:00
MrZ626
ef9aa8e195 新增序列模式bagES(easy start),第一块不会是那些不好安排的块
使用标准包+noInitSZO序列的模式改为使用新的bagES【警告:旧的录像都会坏】
2021-10-09 01:58:33 +08:00
MrZ626
7899c3a49f 自定义序列界面移除单引号输入c的键位 2021-10-09 01:11:04 +08:00
MrZ626
3394409183 调整模式评级的文本,看起来不打击一些
调整模式评级对应的颜色
2021-10-08 18:13:28 +08:00
MrZ626
300cf10413 所有的“完成目标”胜利将会杀死其他玩家,使联网房间能进行部分单机模式的竞技 2021-10-08 17:16:38 +08:00
MrZ626
8203f75cc9 修复远程玩家update流程错误 2021-10-08 16:48:31 +08:00
MrZ626
10e0453a54 调整部分中文tip 2021-10-08 15:40:10 +08:00
MrZ626
b131c34717 调整物理hold失败音效 2021-10-08 15:40:09 +08:00
MrZ626
94a0f44fc5 降低小程序arm一个题型难度 2021-10-08 15:40:09 +08:00
MrZ626
8a47d7dc0f 几个项目说明文件移到根目录 2021-10-07 21:32:07 +08:00
MrZ626
7a18c86927 修改一处ide认为有问题的写法 2021-10-07 18:59:04 +08:00
MrZ626
958a296662 先临时恢复使用之前的字体文件等新字体确认没有问题 2021-10-07 18:49:57 +08:00
MrZ626
d932a0a990 修正解除自定义场地绘制高度限制后出现的其他衍生问题
“自定义场地页面”使用元表实现自动补充尺寸(编辑之后需要手动清空多余空行,目前仅一处)
2021-10-06 22:27:02 +08:00
Imple Lee
3060d89ed4 rename solidLine to notEmptyLine (#362)
Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-10-06 17:23:38 +08:00
Imple Lee
54447e187a remove restriction on field height in custom mode (#361) 2021-10-06 17:18:47 +08:00
C29H25N3O5
e4d62cc4af Fixed the problems about the baseline of the fonts (again) (#359)
* 再次更改 baseline 不对的问题

* Update version.lua
2021-10-06 17:11:55 +08:00
MrZ626
83a1770bac 修复字体 baseline 不对的问题
更新字体, 把少的几个字符加上
使用CHNO整理的字体文件,删除原来的

Co-authored-by: C29H25N3O5 <87485746+C29H25N3O5@users.noreply.github.com>
2021-10-06 01:09:50 +08:00
MrZ626
fd9793a42f 调整几个中文tip 2021-10-05 18:48:32 +08:00
MrZ626
47ba8fe0af Zframework支持自定义onQuit触发的函数,destroyPlayers移出框架代码 2021-10-04 01:10:34 +08:00
MrZ626
639df50a31 lang模块初始化可以不提供后面两个参数 2021-10-04 01:02:34 +08:00
MrZ626
bded1eab15 整理代码 2021-10-04 00:57:14 +08:00
MrZ626
4a06c7b0bb 修改更新历史和build号 2021-10-04 00:42:36 +08:00
MrZ626
08775dcca9 整理代码 2021-10-04 00:39:35 +08:00
C29H25N3O5
011fd8d175 Added 3 new entries for English Zictionary (#354)
* 英文词典增加三个词条

* 增加一个换行符
2021-10-04 00:19:19 +08:00
MrZ626
f2ef3644aa 修正远程玩家startStreaming时录像数组被删除导致开始游戏直接爆炸 2021-10-04 00:16:39 +08:00
MrZ626
b3a319b336 中文词典加入形状和颜色两个词条 2021-10-03 23:18:48 +08:00
MrZ626
667a39dfd3 修改编辑自定义序列时删除两组相同块中间块的时候的行为 2021-10-03 22:43:05 +08:00
MrZ626
8f9b9952ea 整理文件结构
list和globalTables文件合并为gameTables
gametoolfunc改名gameFuncs
2021-10-03 01:37:45 +08:00
MrZ626
444e39ce33 修复统计场景按键爆炸 2021-10-01 20:33:53 +08:00
MrZ626
74ad038f21 微调语言文件 2021-10-01 15:55:26 +08:00
MrZ626
00401befca 更加离谱/生草的机翻文本
Co-authored-by: C29H25N3O5 <87485746+C29H25N3O5@users.noreply.github.com>
2021-10-01 15:49:00 +08:00
MrZ626
f5bffd6f74 单人游戏模式文本下显示最佳纪录(如果有)
整理代码,略微优化游戏中性能
close #348
2021-09-30 22:49:40 +08:00
MrZ626
63ac23a999 修改更新历史 2021-09-30 22:36:49 +08:00
MrZ626
41e4cacdd8 dtw小程序初速度设置支持小数 2021-09-30 22:32:23 +08:00
MrZ626
a61e0086e0 CC不能和swap的暂存模式一起开 2021-09-30 21:13:08 +08:00
MrZ626
6f7ebb4cbf 修正有两个彩蛋模式纯键盘进不去 2021-09-30 01:14:25 +08:00
MrZ626
43db02f97d 新增一个彩蛋模式 2021-09-30 01:13:43 +08:00
MrZ626
3d4c51c532 震动小模块不再引用游戏变量SETTING 2021-09-30 00:19:25 +08:00
Trebor Huang
45718eb41a Include a help file (#345) 2021-09-29 17:36:16 +08:00
MrZ626
90d51b979a 修正玩家计时器不正确 2021-09-29 15:13:32 +08:00
C29H25N3O5
6261256dea 增加 macOS 第一次无法打开的解决方法的说明文档 (#344) 2021-09-29 09:24:33 +08:00
MrZ626
b1a508f209 微调声音设置ui 2021-09-29 00:51:39 +08:00
MrZ626
17eedeaf38 修复挖掘100行放一块就死 2021-09-29 00:05:37 +08:00
MrZ626
733919e1df 修正规则表里有不再存在的模式 close #342 2021-09-28 23:26:55 +08:00
MrZ626
7f7eec18bc 调整加载和主菜单界面的logo颜色 2021-09-28 17:53:39 +08:00
MrZ626
7c70f8c9bc 修改更新历史 2021-09-28 17:14:11 +08:00
MrZ626
9473364fde 调整master_m模式文本颜色,添加15次锁定延迟刷新限制 2021-09-28 17:01:49 +08:00
MrZ626
f8fc909fe6 launchpad新增一页播放bgm 2021-09-28 16:47:21 +08:00
MrZ626
d5a42f2316 修复暂停界面点回放时没有向玩家发送录像数据 close #340 2021-09-28 12:54:43 +08:00
MrZ626
9837330be0 修改更新历史和build号 2021-09-28 02:20:30 +08:00
MrZ626
c99bc2c38d 词典添加swap词条 2021-09-28 02:20:30 +08:00
MrZ626
9896918c35 修复自定义游戏菜单holdMode选项问题 2021-09-28 02:08:19 +08:00
MrZ626
0e605c66c4 新增消5/6音效 2021-09-28 02:05:23 +08:00
MrZ626
4bf7ef0e25 完善玩家刷新机制 close #335 2021-09-28 01:55:57 +08:00
MrZ626
438fef9f26 调整staff表 2021-09-28 00:29:43 +08:00
C29H25N3O5
489a00e2d2 更正英文 Zictionary 语法和拼写 (#338) 2021-09-28 00:17:20 +08:00
Trebor Huang
a1dd5b4188 添加一屏便于操作的launchpad (#337) 2021-09-27 22:29:26 +08:00
MrZ626
3b5c66d192 打击垫允许音效跟语音一起响,同时允许设置音效的音量 2021-09-27 21:43:22 +08:00
MrZ626
10df10abfd 补充FTLock设置的英文文本 2021-09-27 16:54:15 +08:00
MrZ626
4e0607b09c 放宽dtw街机模式初始速度范围 2021-09-27 16:53:35 +08:00
MrZ626
96f8f2cb28 小程序dtw添加一个秘密内容 2021-09-27 01:27:46 +08:00
MrZ626
4d91b92a33 小程序cubefield添加一个秘密内容 2021-09-27 01:24:14 +08:00
MrZ626
9ad96608cf 修改更新历史 2021-09-27 01:04:51 +08:00
MrZ626
73f4dcd828 更换mono的立绘 2021-09-27 00:50:13 +08:00
MrZ626
95cff8b986 音效室场景改名launchpad
zx可以代替鼠标
2021-09-27 00:41:32 +08:00
MrZ626
f2ffdc9e58 整理代码,修复新的彩蛋模式触屏进不去 2021-09-27 00:31:56 +08:00
MrZ626
702abbf7b1 修改更新历史和build号 2021-09-26 22:25:07 +08:00
MrZ626
cc0076a204 暂时禁止自定义模式和联网模式选择回合制 2021-09-26 22:24:41 +08:00
MrZ626
3f64d1044b 尝试修复回合制的回合计算问题 2021-09-26 22:05:42 +08:00
MrZ626
28a0dd8b97 调整远程玩家更新的时间逻辑 2021-09-26 22:03:27 +08:00
MrZ626
1787dbde4d 微调虚拟按键新素材,平衡部分贴图的位置
修正贴图裁剪区域
2021-09-26 21:34:54 +08:00
C29H25N3O5
6c10bff565 Changed the look of the virtual keys (#333)
* Delete virtualkey.png

* 更新虚拟按键外观
2021-09-26 21:21:29 +08:00
MrZ626
479fec4c59 优化音效室的launchpad代码
加入键盘控制(人类不太能用)
2021-09-26 19:55:45 +08:00
MrZ626
1533e0fe74 修复两个小程序按括号爆炸 2021-09-26 19:55:02 +08:00
MrZ626
242416a25d 音乐室改为launchpad(暂时只有两页) 2021-09-26 18:58:40 +08:00
MrZ626
03689c6a0b 调整要加载的语音列表
微调音乐室ui
2021-09-26 18:58:21 +08:00
MrZ626
2e9f1c18e5 更改pc音效文件名 2021-09-26 14:41:27 +08:00
MrZ626
c405cd93be 更新中文词典的极简词条,概述学习和练习的方法 2021-09-26 14:35:52 +08:00
MrZ626
99bbff0d34 英文的SE改回SFX,微调staff表 2021-09-26 11:51:45 +08:00
MrZ626
653debbbc2 回合制模式使用玩家sid处理回合顺序
本地玩家也有sid了(跟id相同)
2021-09-26 11:37:49 +08:00
MrZ626
2279eb8e31 修改更新历史和build号 2021-09-26 01:27:44 +08:00
MrZ626
f475fafbf1 新增一个彩蛋模式 2021-09-26 01:18:18 +08:00
MrZ626
52bb86ad78 调整主菜单快速开始按钮文本生成逻辑,找不到不会报错了 2021-09-26 01:11:19 +08:00
MrZ626
535a590ffd 微调关于界面的ui 2021-09-26 01:05:32 +08:00
MrZ626
b2143557bd 给两个词典的几个wiki词条重新排了序
添加four.lol词条
2021-09-25 19:29:24 +08:00
MrZ626
a6c47f5122 微调键位设置ui和交互逻辑,添加说明文本 2021-09-25 19:29:21 +08:00
MrZ626
fddb2db8c7 整理代码
更多帧更新改为时间更新
微调cubes背景
微调音乐室ui
2021-09-25 19:29:09 +08:00
MrZ626
da58578d33 修改更新历史 2021-09-25 03:03:55 +08:00
MrZ626
391821bf16 Zframework的控件/场景/文本/任务模块支持基于时间更新
修改几处其他地方基于时间update
2021-09-25 02:59:38 +08:00
MrZ626
7ae314fb2c 更新英文翻译
Co-authored-by: C29H25N3O5 <87485746+C29H25N3O5@users.noreply.github.com>
2021-09-24 23:33:36 +08:00
Trebor Huang
7b141a5eaa [no ci] Change icon, temporary fix for dylib loading (#328)
* Move build directory

* Move build folder

* Move the build folder

* Update Mac OS icon

* Use snapshot icon

* Use icon file

* Temporary fix for Mac OS dylib loading

* Update require.lua

* Update require.lua

* Update require.lua

* Update require.lua

Remember to squash this.

* “简化”require模块对于OS X环境的处理方法

Co-authored-by: MrZ626 <1046101471@qq.com>
2021-09-24 21:00:03 +08:00
MrZ626
0b1357c2ee 修改更新历史和build号 2021-09-24 19:58:56 +08:00
C29H25N3O5
417072bf00 Update icon_snapshot.icns on macOS (#325)
* Delete icon_snapshot.icns

* 更新macOS上icon_snapshot的外观
2021-09-24 19:58:09 +08:00
Not-A-Normal-Robot
ff0fa1802d Fix repeating stage completion text bug (#326)
Previously, if you play master phantasm and complete the line requirements of the dig section, but have not dug all the blocks, the "Stage (n) complete" text will still appear. This pull request makes it so that it checks the dig condition *before* making the text appear.
2021-09-24 19:57:58 +08:00
MrZ626
07e07e61ee 修改FL mod的画面表现
修改hold设为swap时不可hold的块标记方式和普通hold的一样
2021-09-24 14:49:17 +08:00
MrZ626
4f939d7ea4 drawNext系列函数整理合并(略微牺牲性能),玩家用的绘制函数完全放入draw.lua
游戏参数新增holdMode
默认'hold'为普通hold模式
'swap'为跟next第一个交换(跟物理hold/多hold均兼容)
2021-09-24 13:35:17 +08:00
MrZ626
9fa4b97e5e 整理代码 2021-09-24 08:27:40 +08:00
MrZ626
b890813732 BGM模块新增seek方法 2021-09-24 02:33:09 +08:00
MrZ626
f9650c565c 刷新玩家stat时间和帧数的代码移到update函数外部 2021-09-24 02:28:51 +08:00
MrZ626
6eca35759f Revert "降低 Shiny 皮肤饱和度 (#318)"
This reverts commit 1de11365c1.
2021-09-24 02:15:32 +08:00
MrZ626
c927e58ce4 添加逻辑追帧功能,设置默认关闭,联网强制打开防止低帧率设备影响游戏体验 2021-09-24 02:08:00 +08:00
MrZ626
4c7ba04274 整理Player类代码,准备将玩家更新改为基于时间 2021-09-24 00:39:42 +08:00
MrZ626
bb60813323 修改Ospin的实现,O的旋转历史不再直接记录在玩家对象里而是放在方块数据中伴随方块刷新自动重置
两种方法各有缺点,暂时选择旋转系统不污染玩家的属性
2021-09-24 00:38:54 +08:00
MrZ626
4fc7dd447e 修改两处变量名,“累计值然后进行若干次操作”的变量使用trigXXX的格式 2021-09-24 00:37:59 +08:00
MrZ626
dc0b39d6b5 移除语言文件里多余的挖掘1000行模式信息 close #324 2021-09-23 15:45:21 +08:00
MrZ626
84058f9833 修正一处变量名漏改
整理代码
2021-09-23 15:16:58 +08:00
MrZ626
d78fc5bf9c 移动打包相关文件目录,等待修改ci
【警告】ci暂时不可用
2021-09-23 13:46:03 +08:00
MrZ626
d839037c09 修改gitigore 2021-09-23 12:13:00 +08:00
MrZ626
cfe0ef8864 把游戏logo的图片加回media文件夹以备不时之需 2021-09-23 12:06:55 +08:00
MrZ626
e2d12d766f 修正一处拼写错误 2021-09-23 11:54:52 +08:00
C29H25N3O5
e73647780c 增加 macOS 专用圆角图标 (#321) 2021-09-23 11:54:32 +08:00
C29H25N3O5
1de11365c1 降低 Shiny 皮肤饱和度 (#318)
* Delete shiny_cho.png

* Add files via upload

* Delete shiny_cho.png

* 降低 Shiny 皮肤的饱和度, 看起来不那么刺眼
2021-09-23 11:53:39 +08:00
MrZ626
7ebf8aca5b 修改更新历史和build号 2021-09-23 01:24:29 +08:00
MrZ626
58b8f354e0 无尽pc模式要求必须4行一次,两行pc不重置pc限制线 2021-09-23 01:23:42 +08:00
MrZ626
2bfcc7e0f2 统一管理玩家update函数而不是在特定时候切换,方便之后把帧步进改为时间同步 2021-09-23 01:18:01 +08:00
MrZ626
a7ddc69679 修正音效室mini和b2b(b3b)顺序不对 2021-09-23 01:00:37 +08:00
MrZ626
86d1f9470e 修正之前新公告解析的小问题 2021-09-22 19:34:45 +08:00
MrZ626
57a233d51b 降低高速经典-极限的评级标准 2021-09-22 14:18:19 +08:00
MrZ626
a021fcd951 HB和HG改回之前的无开关状态,等待之后重做mod close #317 2021-09-22 14:04:53 +08:00
MrZ626
3bfa49236e 更新仓库readme 2021-09-22 11:21:21 +08:00
MrZ626
0e52416a9b 整理代码,部分玩家绘制材质移动到TEXTURE模块
触屏设置界面绘制完整的玩家边框
2021-09-22 11:07:09 +08:00
MrZ626
a0f8258cad 修复重构语言模块后说明书场景爆炸 2021-09-22 11:03:55 +08:00
MrZ626
a2da057581 调整公告解析,自制一个简单的分语言公告格式 2021-09-22 11:03:55 +08:00
MrZ626
56cbe4c5b6 添加log模块,用于代替之前缺少音频文件弹出的消息框
也给缺少图片和加载错误语言等地方添加了日志
控制台添加log命令输出日志
2021-09-22 11:03:55 +08:00
MrZ626
48c9bd6dfd 调整小程序arm题目顺序 2021-09-22 11:03:54 +08:00
MrZ626
a30b69db4c 调整未来计划上面的版块,个别内容移至私密笔记 2021-09-22 11:03:54 +08:00
Not-A-Normal-Robot
e57ddbb6eb Fix dig 10l, 40l, and 100l (#310)
Previously, it didn't find eventsets named "dig_(n)L" because there were only "dig_(n)l" (capitalization). This fixes that.
2021-09-22 11:03:54 +08:00
MrZ626
f1068eacd8 再次修正之前整理小程序代码把FONT.set打成FONT.get close #312 2021-09-22 11:03:54 +08:00
huaji2369
b762741a6e 修改机翻的回滚语言为中文 (#314) 2021-09-22 11:03:54 +08:00
MrZ626
1f59aaca43 微调机翻语言 2021-09-22 11:03:53 +08:00
MrZ626
53d4fd8547 修正之前整理小程序代码把FONT.set打成FONT.get 2021-09-22 11:03:53 +08:00
MrZ626
0eea1ae0c6 经典模式全部换新,只保留三个从9/18/29开始的模式
注意:提速的行数和分数显示不完全和原版一致
2021-09-22 11:03:53 +08:00
MrZ626
43a2ca9407 把经典模式减少到三个(平衡还未调整) 2021-09-22 11:03:53 +08:00
Not-A-Normal-Robot
30ed4179d6 Add easier Classic modes (#302)
* Remove SDARR limitation on Rhythm

* Remove SDARR limitation on Rhythm

* Remove SDARR limitation on Rhythm

* Revert "Remove SDARR limitation on Rhythm"

This reverts commit 1a0a56bbf6.

* Add classic modes: easy and normal

(Easy: lvl9 start, Normal: lvl15 start)

* fixed typos

* Updated map
2021-09-22 11:03:52 +08:00
MrZ626
6f715a663a 整理代码,略微提升部分小程序的性能 2021-09-22 11:03:52 +08:00
MrZ626
1d30623222 微调语言相关 2021-09-22 11:03:52 +08:00
MrZ626
4db71b4b0d 修正一处要加载的文件大小写错误导致部分系统会找不到文件 2021-09-22 11:03:52 +08:00
MrZ626
fe6d698b74 修改更新历史和build号 2021-09-22 11:03:52 +08:00
MrZ626
7393b3c716 新语言:机翻
语言模块升级
支持更自由地添加语言(不再使用语言序号)
给getTip设置metatable的代码移出模块
2021-09-22 11:03:51 +08:00
MrZ626
493fcb2f05 修正曾经语音和音效未区分时欢迎音效和欢迎语音文件名不同导致分开后看起来很奇怪 2021-09-22 11:03:51 +08:00
MrZ626
47c509c0a7 移除工程文件内图标,不用love自带设置图标,让每个平台自己决定 2021-09-22 11:03:51 +08:00
MrZ626
c98783d33f 调整无移动模式规则,不再禁止软降n格了 2021-09-22 11:03:51 +08:00
MrZ626
b71c9d7bf3 小程序arithmetic支持小键盘,调整部分题目数量 2021-09-22 11:03:51 +08:00
MrZ626
25ed49f1a6 微调小程序arithmetic的ui,修复按钮重叠 close #304 2021-09-22 11:03:50 +08:00
MrZ626
cb0a3314b6 修改更新历史和build号 2021-09-22 11:03:50 +08:00
MrZ626
3880197d02 新增小程序:Arithmetic(未完成) 2021-09-19 04:23:37 +08:00
MrZ626
ec04da06d7 整理代码 2021-09-19 04:20:16 +08:00
MrZ626
4654e9f7c7 移除sad和egg两条语音
修正之前有个语音包文件夹名忘了改
2021-09-18 22:10:47 +08:00
MrZ626
fc3517584d 大改配音说明文档 2021-09-18 22:07:10 +08:00
MrZ626
8677e98a24 触发防沉迷的两个时间点降低到为2小时和4小时 2021-09-16 20:17:06 +08:00
MrZ626
152dc13ded 微调声音设置页面 2021-09-16 20:14:33 +08:00
MrZ626
76ab6282a9 删除测试ios退出相关的临时代码 2021-09-16 13:21:25 +08:00
MrZ626
61b264cd70 给几乎所有滑条和复选框控件添加文本限制宽度 2021-09-16 02:31:13 +08:00
MrZ626
3714fea994 滑条和复选框控件支持lim属性限制文本宽度 2021-09-16 02:29:58 +08:00
MrZ626
e1a820d1f9 给GC扩展模块的对齐draw们添加注释 2021-09-16 02:07:59 +08:00
MrZ626
3f94dadcef 小程序link:
修复第16关统计数据看不到
修复红色和黄色格子的图案一样
略微减淡图案
添加最大连击数显示
FC奖励分数直接乘*1.1
2021-09-16 02:07:38 +08:00
MrZ626
e67d6ce53c 小程序link加上图案 2021-09-15 22:58:19 +08:00
MrZ626
13cf53e885 移除小程序15p完成后文本提示 2021-09-15 22:20:14 +08:00
MrZ626
f95be0996d 调整mini打包流程(因为修改了媒体文件目录) 2021-09-15 01:31:35 +08:00
MrZ626
dbc5a1e45c 修改更新历史 2021-09-15 01:24:03 +08:00
MrZ626
dd30e4b3ec iOS退出失败会提示 close #273 2021-09-15 01:22:48 +08:00
MrZ626
9468c0435a 添加音效包选择(暂无其他音效包)
整理音频文件目录(文件夹名都小写)
2021-09-15 00:25:47 +08:00
user670
4be5933dc8 Update app_console.lua (#294)
update description of Link. Shisen-Sho (四川省) is the Japanese name of this game, for there is no other names accepted in the English language. No, I'm not accepting "Link link go" as an acceptable name. No, Mahjong Solitaire is a totally different game.
2021-09-14 17:26:36 +08:00
user670
fe5ba06328 Update updateLog.lua (#298)
remove duplicate line
2021-09-14 17:26:18 +08:00
user670
a2f5db8d3c Update dict_en.lua (#293)
wtf is with Naki/Mono?

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-09-14 17:25:46 +08:00
MrZ626
b48e65a9d8 Zframework允许外部设置开关电量显示的条件函数 2021-09-14 17:24:37 +08:00
MrZ626
18471a201f 设置新增是否使用系统光标的选项(系统光标不受按键即隐藏的影响) close #295 2021-09-14 17:24:15 +08:00
MrZ626
1d61a3af8b 调整词典mono词条 2021-09-14 13:07:52 +08:00
Not-A-Normal-Robot
e4f5b8f95c Invis --> Invisible (#299)
* Invis --> Invisible

For modes, "Invisible" still fits, so the shortened version is not needed. This is untrue for modes with invis modes though, they might not fit.

* Lined up text
2021-09-14 12:56:57 +08:00
MrZ626
d31ab133f4 小程序Link微调ui 2021-09-14 04:04:38 +08:00
MrZ626
dcc15dd42b 修改更新历史和build号 2021-09-14 03:45:08 +08:00
MrZ626
280f2c0af5 小程序Link移除速打,添加FC机制 2021-09-14 03:44:15 +08:00
MrZ626
890264ef7d 小程序Link添加连击和分数系统 2021-09-14 03:01:20 +08:00
MrZ626
e9d58a4f74 新增小程序:Link 2021-09-14 01:09:19 +08:00
MrZ626
9020798f90 dtw小程序按key音改成锁定音 2021-09-13 21:11:19 +08:00
MrZ626
7167df10e6 修复cannon小程序单击左键没用 2021-09-12 21:14:55 +08:00
MrZ626
8bedd7aa2a 加快切后台自动静音速度 2021-09-12 21:14:06 +08:00
MrZ626
357e747391 微调中文词典sub词条,说法更严谨 2021-09-12 20:25:53 +08:00
MrZ626
8c11721c75 世界线变动(游戏内容无关修改) 2021-09-12 14:27:18 +08:00
MrZ626
da13235c88 可以设置失去焦点后自动静音 close #281 2021-09-12 03:50:29 +08:00
MrZ626
aababce74c 取消静音按钮,添加总音量滑条 2021-09-11 23:03:49 +08:00
MrZ626
a395004027 bgm模块新增continue方法可以继续播放之前stop的音乐(未使用) 2021-09-11 22:49:46 +08:00
MrZ626
0489394d67 静音首页机器人 2021-09-11 22:47:42 +08:00
MrZ626
4cde774cc2 Zframework框架文件会返回一个table了
可以在框架文件之外使用setCursor方法在外部设置绘制光标的函数
2021-09-11 22:15:29 +08:00
MrZ626
baa2b105d3 添加miku立绘(据vocaloidvictory说这张图可以使用) 2021-09-11 21:42:28 +08:00
MrZ626
9667d9ffa8 修改更新历史 2021-09-11 20:33:22 +08:00
MrZ626
b8b85b569c 把方便改的blind都换成invis,防止冒犯到盲人
模式名里的blind没有改,会影响存档数据不方便,不会在游戏里直接显示 close #291
(好奇真的有盲人玩吗)
2021-09-11 20:32:12 +08:00
MrZ626
27f2d05c56 马拉松bfmax模式pc不再会死 2021-09-11 19:57:08 +08:00
MrZ626
49e1c0758d 调整选择器控件出错时的行为
修复没有音乐文件的时候dtw小程序报错
2021-09-11 19:44:13 +08:00
MrZ626
2299eb0e33 节奏模式代码直接调用硬降,而不是帮玩家按硬降键 2021-09-11 17:25:33 +08:00
MrZ626
b6e17594c6 修正换回字体后mod菜单文本没对齐 2021-09-11 16:32:25 +08:00
MrZ626
19c2724e8b TEXT模块会生成文本对象用于绘制
优化绘制方式,略微提升性能
2021-09-11 16:32:06 +08:00
MrZ626
7f4591bcec 关闭方块和影子的mod也可以强制开启 close #289 2021-09-11 16:09:51 +08:00
MrZ626
4de7ee4ce0 调整触屏和控件交互的细节,滑条可以拖出范围但不失去焦点 close #279 2021-09-11 04:39:45 +08:00
MrZ626
eb6f1718a8 修复小程序dtw切换模式的时候不会自动重置谱面 2021-09-10 22:44:15 +08:00
MrZ626
36ce09c4f1 修复暂停不会松开虚拟按键的(动画,玩家逻辑上其实松开了) close #280 2021-09-10 22:28:27 +08:00
MrZ626
1994a615c2 节奏模式取消禁止瞬移的设置 close #287 2021-09-10 22:05:25 +08:00
MrZ626
82b75a5aa9 修复miku语音包b2b和b3b结束太短的问题 2021-09-10 18:32:49 +08:00
MrZ626
2ec91f58ae 暂时注释掉bgm和voice模块缺失文件时弹出消息的代码 close #288 2021-09-10 17:38:22 +08:00
MrZ626
e9cd7ef5ca 补充miku语音包的胜利语音 2021-09-10 17:19:10 +08:00
MrZ626
29aff06b1d 新增bgm:Null(用于zday节日,替换原来的blank) 2021-09-10 16:59:45 +08:00
MrZ626
18f3414f34 修复master-ex时间指示条结束的时候绘制错误,略微增加alpha 2021-09-10 16:59:12 +08:00
MrZ626
a7b236d528 master-ex添加一个时间指示器 close #286 2021-09-09 22:09:33 +08:00
MrZ626
46fdf03925 自定义游戏和自定义房间的eventSet列表移至list.lua统一为一个表 2021-09-09 21:20:05 +08:00
MrZ626
f67f31baa2 修改更新历史和build号和房间版本名 2021-09-09 21:10:17 +08:00
MrZ626
1fcbb8ea7d 添加miku语音包
所有方块spin都可以有对应语音
修正部分PQ方块名弄反
修正RSlist文件里旋转中心表的JL注释弄反
2021-09-09 20:15:40 +08:00
MrZ626
60ef682c80 玩家添加弹出过关文本的方法,大师模式统一使用该方法
大师-虚幻添加过关文本close #282
2021-09-09 19:45:52 +08:00
MrZ626
c668a22345 修正关卡完成时文本的不合适(其他语言等待翻译) close #283 2021-09-09 15:35:08 +08:00
MrZ626
cb69f011e5 两个可以选规则包的地方补充master_m close #284 2021-09-09 15:29:05 +08:00
MrZ626
176e96fd1f 所有打错的hexcrash和pentcrash重新加回a 2021-09-09 15:05:05 +08:00
MrZ626
43e550b9b2 修正经典模式系列相关 2021-09-09 15:04:50 +08:00
Not-A-Normal-Robot
ee139d5ff0 Add lvl19 and lvl29 starts for Classic mode, rename from classic_fast to classic_hard (#285)
* Add more Lvl19 Classic start

* Add lvl29 Classic start

* Rename classic_fast.lua to classic_hard.lua

* Update and rename classic_fast.lua to classic_hard.lua

* Add Classic Lunatic mode (lvl19 start)

* Rename classic_hard.lua to classic_h.lua

* Rename classic_lunatic.lua to classic_l.lua

* Rename classic_ultimate.lua to classic_u.lua

* Rename classic_hard.lua to classic_h.lua

* Add lvl19 and lvl29 start

* Update modes.lua

* Update classic_h.lua

* Create classic_u.lua

* Update classic_u.lua

* Update english language to add Classic text

* Added more space between Classic modes

* Add compatibility for old replays

* Update lang_en.lua

* deleted classic ultimate and master m21 overlap

* Added Classic modes into spanish

I do not speak spanish, I just copied from the other entries, hopefully it's right....

* Update lang_fr.lua

* Update lang_pt.lua

* Update lang_yygq.lua

sorry if wrong, i don't really know much chinese

* Update lang_zh.lua

* Update lang_zh2.lua

* added a single = sign

i forgot to add this, whoops!

* added a single comma

yes, i'm that dumb.
2021-09-09 15:04:28 +08:00
MrZ626
5c5ec3e16c 恢复之前字体的电量显示ui 2021-09-09 04:11:53 +08:00
MrZ626
da82d679ce 修正语音说明文档两个拼写问题 2021-09-08 17:01:19 +08:00
MrZ626
834a08d58d 词典更新捐赠的说明,中文添加挖掘词条 2021-09-08 17:00:02 +08:00
MrZ626
395485527e 整理代码规范说明 2021-09-05 18:07:45 +08:00
MrZ626
8c9fd45fcc 修复2048小程序自动重复器点不动 2021-09-05 17:46:27 +08:00
MrZ626
59356b9f28 移除barlow字体 2021-09-04 22:16:23 +08:00
MrZ626
bb3cc84ca4 统计场景表格字体对齐 2021-09-03 01:36:30 +08:00
MrZ626
ac2c708d01 更新代码规范 2021-09-03 00:28:08 +08:00
MrZ626
57497dbd74 整理代码,较复杂的单行if-then-end拆成多行 2021-09-03 00:28:08 +08:00
MrZ626
827d0cdf5a mod场景字体对齐 2021-09-03 00:28:08 +08:00
Not-A-Normal-Robot
e3539f17bd Tool Assisted Supergaming --> Superplay (#278)
On the English wikipedia, it is listed as Superplay, not Supergaming.
2021-09-03 00:22:53 +08:00
MrZ626
b88580ad9a 补充英语词典两个词条 2021-09-02 17:39:28 +08:00
MrZ626
8d8cceaeea 微调框架两个模块细节 2021-09-02 17:39:28 +08:00
MrZ626
290c7988b2 string扩展模块新增一个简单的浮点转大数字格式函数 2021-09-02 17:15:24 +08:00
MrZ626
f97767aff4 玩家左下角时间显示改用时分秒格式 close #271 2021-09-01 04:09:10 +08:00
MrZ626
fae14d4f9b 修正联网游戏按钮位置偏了一点 2021-09-01 03:41:45 +08:00
MrZ626
699247266e 修复录像菜单文字没对齐 2021-09-01 03:15:16 +08:00
MrZ626
5c8b80741f 挖掘模式也使用独立规则包,可以对战使用 2021-09-01 03:14:37 +08:00
MrZ626
e5287d876b 修改staff表 2021-08-31 05:23:22 +08:00
MrZ626
b3e6e42790 修正联网模式可以F8+F4
整理代码,游戏场景不再有自己的tasUsed变量
2021-08-31 05:14:00 +08:00
MrZ626
fce5b9696f 微调词典
整理代码
修改更新历史和build号
2021-08-31 04:33:56 +08:00
MrZ626
f252ed63d5 eventSet可以修改所有参数
整理代码
2021-08-31 00:42:52 +08:00
C29H25N3O5
3114d3a27d Added a new block skin "cho_shiny" (#266)
* 添加一款新皮肤

* Update main.lua
2021-08-30 10:46:31 +08:00
MrZ626
e186bfe80d 修复set20G禁用n格软降键逻辑问题 2021-08-30 00:22:38 +08:00
MrZ626
3db2a4b30d 修改两处在GC.DO里使用print,防止更换字体后明显不对齐 2021-08-29 23:25:38 +08:00
MrZ626
1c25138eaf 修复master-ex左侧信息 close #260 2021-08-29 23:05:08 +08:00
MrZ626
1807c95c53 修正tas大字位置不正确(之前默认了一个字体的尺寸所以换完字体爆了) 2021-08-29 22:48:46 +08:00
MrZ626
7ea78ee48a 移除自定义默认显示行数的设定 close #262 2021-08-29 22:45:46 +08:00
MrZ626
5d57feaea5 修正49和99左侧信息不见了 2021-08-29 21:58:35 +08:00
MrZ626
f4583e46bf 微调极简奖杯字号和位置 2021-08-29 21:58:19 +08:00
MrZ626
5ed00a67c4 修复下4和下10的严重问题 2021-08-29 21:57:08 +08:00
MrZ626
0148c539be 修复默认按键布局数据错误 2021-08-29 21:01:07 +08:00
MrZ626
51cdf864be 修复字符串扩展模块时间转换方法问题
微调音乐室ui
修复更换字体后左上时间歪了
2021-08-29 17:40:32 +08:00
MrZ626
bd9ee49255 调整字体相关的一些东西
整理代码
2021-08-29 16:08:51 +08:00
MrZ626
16c377427a setFont改为font模块,字体文件放到parts/fonts内,调整打包ci对应处 2021-08-29 14:17:52 +08:00
scdhh
66dcfa40b0 更改字体文件存放位置,并对应修正ci (#254) 2021-08-29 12:15:40 +08:00
MrZ626
e726ef505f 修改代码规范说明文件
并和license/readme一起更换目录
2021-08-29 12:12:10 +08:00
MrZ626
a686a2e9d1 添加代码规范文件 2021-08-29 04:11:25 +08:00
MrZ626
720ee71f8b 词典加回T3055(因为在开发nanamino)
词典添加Nanamino词条
2021-08-29 04:10:14 +08:00
MrZ626
557cdf6cfb 添加barlow-condense字体作为首选英文字体(免费商用) 2021-08-29 04:10:10 +08:00
MrZ626
6b93675ec1 2021-08-29 03:11:34 +08:00
Not-A-Normal-Robot
9419c4c639 Change description of Turn-based mode (#247)
Might need some line breaks in there, but idk where so I'll leave it like this
2021-08-29 01:37:28 +08:00
MrZ626
7eb243a18f 整理代码 2021-08-28 23:23:51 +08:00
MrZ626
3a2b531d4c 修复blind-wtf绘制元素缺少 close #248 2021-08-28 22:49:04 +08:00
MrZ626
05068f8df5 修正更换mesDisp机制后忘了给repMode参数 2021-08-28 22:32:15 +08:00
MrZ626
a6d80667c1 减慢使用默认update模板函数的bot线程结束后拍硬降的速度 2021-08-28 22:25:35 +08:00
MrZ626
a0dccadfd7 修正高速经典开局锁延条不对 2021-08-28 22:24:28 +08:00
MrZ626
7992eab16c 新增master_m模式 2021-08-28 22:23:17 +08:00
MrZ626
a1c6f720a2 代码规范:所有文件以空行结尾 2021-08-28 16:46:10 +08:00
MrZ626
a1162f1b0f 修改TRS中S5和Z5的踢墙表 2021-08-28 16:22:03 +08:00
MrZ626
80f21ae2f0 修复自定义房间选项规则包设置值取错 2021-08-28 15:44:32 +08:00
flaribbit
fce8623595 Update require.lua (#245) 2021-08-28 15:43:43 +08:00
MrZ626
e82a5c8026 自定义游戏和创建房间可选规则包,微调附近控件位置
补充??语言联网菜单的文本
房间版本改为1.a
2021-08-28 15:04:10 +08:00
MrZ626
517d4cfc82 每个mesDisp开始都会重新设置画笔为白色 2021-08-28 15:04:00 +08:00
MrZ626
7f7f7e752e mesDisp加入eventSet
eventSet中的规则不在覆盖,而是全部同时生效
调整部分模式的信息显示
自定义游戏可以选择部分eventSet
整理代码
警告:可能部分模式有问题,需要测试
2021-08-28 04:01:58 +08:00
MrZ626
5963db479e 【eventSet系统修正】修正节奏模式模板并
调整节奏模式h难度速度曲线
2021-08-28 01:19:30 +08:00
MrZ626
96266ab310 【eventSet系统修正】修正无尽pc爆炸 2021-08-28 01:12:15 +08:00
MrZ626
c7f6b396e0 修复require模块在安卓获取架构错误 2021-08-28 00:05:16 +08:00
MrZ626
b7ca91f9e2 修改build号和更新历史 2021-08-27 23:25:36 +08:00
MrZ626
9ec7cdb070 控制台添加删除模式排行榜的命令 2021-08-27 23:25:11 +08:00
MrZ626
3e1220fa0e 控制台执行lua代码时sudo模式开关会影响输出文本颜色 2021-08-27 22:42:47 +08:00
MrZ626
660946215e tab缩进换成空格 2021-08-27 22:40:03 +08:00
MrZ626
a7b38335c9 微调自定义游戏和音乐室ui
整理代码
2021-08-27 22:29:32 +08:00
MrZ626
e4803cc89d 音乐室显示bgm的进度,添加可拖进度条 2021-08-27 20:59:25 +08:00
MrZ626
b104298c7d 修正string扩展模块的time方法的取整问题
新增time_simp方法
2021-08-27 20:58:41 +08:00
MrZ626
e049375bbc 修正所有语言文件的spin文本多了一个空格 2021-08-27 18:53:54 +08:00
MrFaq2018
f48bd550b7 Updated Spanish lang (#238)
* Update lang_es.lua

* Update lang_es.lua
2021-08-27 18:46:36 +08:00
MrZ626
00ec064dc3 下载云存档时会更强力地覆盖原来的数据
修复下载云存档时进度不会完全恢复 close #240
2021-08-27 18:13:05 +08:00
MrZ626
4c5409aa01 补充消200行的配置小模块 2021-08-27 14:16:32 +08:00
MrZ626
6166c87e16 修正部分地方玩家的small属性没有改成新的miniMode导致一些坐标计算错误 2021-08-27 00:17:20 +08:00
scdhh
159cd74c28 动态获取CC版本号 (#237)
* 动态获取CC版本号
release CI使用latest
snapshot 使用 pre-release(如果有的话)

* Windows 添加安装 requests 模块步骤
Linux及macOS 修正python版本和路径

* macOS 添加安装 requests 步骤
修正命令参数位置

* getLatest接收Repo,使其不止能用在CC上

* 修正macOS使用的pip版本
2021-08-27 00:04:34 +08:00
MrZ626
60ef83dd34 修复混战模式9S显示模式错误 2021-08-27 00:03:59 +08:00
MrZ626
3c02c5957e 加载cc失败的时候不会报错了 2021-08-27 00:02:24 +08:00
MrZ626
bbef071931 loadlib模块改名require模块 2021-08-27 00:02:08 +08:00
MrZ626
726928aadc 挖掘模式开局10的行也使用eventSet 2021-08-26 23:58:40 +08:00
MrZ626
7ad386d28f 重构模式环境的dropPiece和task事件为更强大的自定义和未来联网任意模式做准备
整理出所有模式的这两个事件独立到一个文件夹并整理所有模式引用它们的方式
警告:很可能有错误,需要他人帮助测试
2021-08-26 23:49:20 +08:00
MrZ626
a4c9bdef4a 修复包分界线关不掉
包分界线颜色改成透明灰
2021-08-26 19:38:47 +08:00
MrZ626
a64edc70ed 整理代码,修复birs报错 2021-08-26 17:13:01 +08:00
MrZ626
f6826432d0 修正主界面cc的bag模式为true
cc移动加速
2021-08-26 17:09:16 +08:00
Trebor Huang
f29efa8f60 Update cc ci (#235)
* 将CCwrapper更新到最新版本

* 修笔误

* 更新release.yml
2021-08-26 16:43:10 +08:00
MrZ626
e7bcf489eb 降低回合制难度和评级标准 2021-08-26 16:35:06 +08:00
MrZ626
15d43f6313 修复机器人更新协程结束后不会让机器人进入自杀模式 2021-08-26 15:46:50 +08:00
MrZ626
a7f7374f96 修复loadlib小模块在安卓上会一直复制so库文件 2021-08-26 15:20:15 +08:00
MrZ626
de1a1cbe9a 修正cc初始化时的一些小问题 2021-08-26 15:19:40 +08:00
MrZ626
27a0e8ee3a 整理代码 2021-08-26 15:08:24 +08:00
Trebor Huang
db4f193046 适配CC API (#233)
* 适配CC API

* 修正上游代码
2021-08-26 14:29:41 +08:00
MrZ626
118182a6cc 修改更新历史和build号 2021-08-26 03:39:30 +08:00
MrZ626
442b3bd233 BGM模块新增setChange方法可以设置切换BGM的时候会触发的事件
切换BGM时弹出BGM名称
2021-08-26 03:37:06 +08:00
MrZ626
12c96f321b 新BGM:Jazz nihilism(用于节日主题,by Trebor) 2021-08-26 03:09:46 +08:00
MrZ626
f77d8d5219 修改/添加bot的api
更新ccBot相关代码(需要修正)
2021-08-26 02:43:16 +08:00
MrZ626
b7d5a3f9c6 string扩展模块新增16进制颜色解析函数 2021-08-26 00:45:48 +08:00
MrZ626
b887ca01d0 修复之前整理代码有个if写错了导致移动特效不见了 2021-08-25 23:19:45 +08:00
MrZ626
179ff9b10a 整理代码,跟进之前的整理玩家方法 2021-08-25 14:01:11 +08:00
MrZ626
4c18629cd7 修正之前玩家showTextF方法改名但用的地方漏改了 2021-08-25 13:51:20 +08:00
MrZ626
295e79984f 代码规范:把所有的tab换成空格 2021-08-25 04:28:52 +08:00
MrZ626
8f910f95f4 整理代码,调整local函数名规范(较边缘的代码不必遵守,比如外部的库和小程序):
特别临时性的用全大写字母缩写或者单字母
TASK模块用到的任务函数和检查函数开头分别为task_和check_
其他函数开头添加下划线作为指示
2021-08-25 02:40:01 +08:00
MrZ626
ee55055385 消除目标线高度会在消行时跟随平滑下落动画 close #208 2021-08-25 02:13:17 +08:00
MrZ626
674edfc330 开启平滑下落且有消行延迟时的消行动画曲线拉直一些 2021-08-25 02:09:05 +08:00
MrZ626
c33e5029df 重新封装控制台非sudomode的print函数并支持多参数分行输出
修复非sudomode下控制台执行#print非字符串内容会报错(之前print被直接接入了log没有做类型转换)
close #231
2021-08-25 01:55:41 +08:00
MrZ626
a2f205362a 重新组织玩家各种生成特效的方法,使用的地方不传入各种参数更简洁易读
有特殊需要越过设置显示请使用几个_XXX方法(注释了Not used)
2021-08-25 01:41:39 +08:00
MrZ626
3d6771b3d2 整理代码 2021-08-25 01:29:19 +08:00
MrZ626
fe9ff0c337 修改更新历史和build号 2021-08-24 19:32:51 +08:00
MrZ626
754545cc40 简单封装保存统计、进度、设置的三个函数方便阅读代码
f11开关全屏时会自动保存设置
close #230
2021-08-24 18:29:45 +08:00
MrZ626
aab45b1b14 显示模式信息的函数也可以拿到“回放状态”变量
隐形wtf模式在tas模式下不会完全遮挡
2021-08-24 18:14:04 +08:00
MrZ626
9eaa00e878 调整loadLib加载安卓so库的策略(需要等待后续测试) 2021-08-24 18:01:29 +08:00
MrZ626
8520ca44ee 修复退出联网游戏界面时会因为太早销毁玩家导致场景切换之前仍需要绘制的时候报错 close #228 2021-08-24 17:56:10 +08:00
scdhh
6b8ac5e939 添加pr触发actions (#227) 2021-08-24 17:18:28 +08:00
MrZ626
5767acb5bf 完善词典T283词条 2021-08-24 17:15:07 +08:00
MrZ626
9e3fc97727 修复master-ph模式部分随机没有使用玩家的随机器导致录像回放不一致 close #226 2021-08-24 17:12:50 +08:00
MrZ626
7817499da7 AITemplate小模块合并至BOT模块并优化参数样式
修改所有之前的AITemplate至新格式
启用9s的hold开关(之前有开关但是没用)
准备好cc对接相关代码模板(不能用所以注释了,需要修改)
2021-08-24 05:15:27 +08:00
MrZ626
1c43e92577 增加尝试接入CC的代码模板(注释),等待后续修改 2021-08-24 01:46:59 +08:00
MrZ626
3e4f945d56 修复触屏退出游戏的按钮没有取消游戏中状态导致进不去隐藏模式 2021-08-24 00:46:48 +08:00
MrZ626
491c4d25d7 重构ai模块,等待使用新wrapper接入cc,bot数据结构未定 2021-08-23 23:02:35 +08:00
MrZ626
2432d57d70 整理代码 2021-08-23 20:03:25 +08:00
MrZ626
9408b592fd 修改更新历史 2021-08-23 04:39:14 +08:00
MrZ626
743f192d85 调整限60fps代码,让出时间更接近一帧 2021-08-23 04:30:43 +08:00
MrZ626
4e47b0acb7 再整理cc相关代码 2021-08-23 04:29:46 +08:00
MrZ626
43ab4e1e42 回合制改为7块一回合和两条命 2021-08-23 04:08:41 +08:00
MrZ626
9b28cdbcd2 方块对象里不再存旋转中心了,直接存旋转系统
修复玩家初始化时cc的初始几块中心位置不正确导致崩溃(好像是超级远古bug,终于修了)
2021-08-23 03:33:37 +08:00
MrZ626
acb29c33d3 调整destroyPlayers过程对cc特殊处理的代码 2021-08-22 17:41:01 +08:00
MrZ626
e3eee3dc02 微调table扩展 2021-08-22 17:31:36 +08:00
MrZ626
e3eae25caa 修复cc出故障后非lua对象不会自动回收导致内存泄漏 2021-08-22 16:17:49 +08:00
MrZ626
cc23869128 把检测ai是否放到目标位置的代码独立出玩家lock方法,略微提升性能 2021-08-22 15:35:40 +08:00
MrZ626
36c11961b6 修改更新历史版本号build号 2021-08-22 02:09:43 +08:00
MrZ626
f21dc94979 修改ARS_Z的中心样式 2021-08-22 02:07:35 +08:00
MrZ626
d4ab850e7b 补充修复之前15p盲打报错的一个小问题 2021-08-22 02:04:23 +08:00
MrZ626
edf6e075f2 修复复活时命数减少动画位置不正确 2021-08-22 02:02:12 +08:00
MrZ626
92c3b8314d 修复回放模式下强制显示ghost时报错 2021-08-22 00:27:15 +08:00
MrZ626
33260fc820 修复15p开盲打报错,调整紫色格子的颜色更清晰 2021-08-22 00:17:29 +08:00
MrZ626
5b5afec84d 调整ai尤其是cc相关代码,捕获窒息的时候可能会有实心行错误并让cc进入自杀模式 2021-08-21 23:43:12 +08:00
MrZ626
d818e697e9 尝试保存数据的时候添加“p1是人类玩家”的条件 2021-08-21 21:22:00 +08:00
MrZ626
03edb20265 修改主循环帧率控制代码,尝试修复love的wait(0)导致部分设备的巨大误差 2021-08-21 21:16:45 +08:00
MrZ626
4157062442 增大场地晃动的阻力,不再会在原点来回晃 2021-08-21 16:52:52 +08:00
MrZ626
2f46645149 补充ARS_Z, Classic, Classic_plus三个旋转系统的中心并启用中心显示 2021-08-21 03:09:32 +08:00
MrZ626
31f4576acd 添加SRS_X旋转系统 close #175 2021-08-21 03:00:03 +08:00
MrZ626
e1d85b0a04 新增ARS_Z旋转系统 close #141 2021-08-21 02:40:56 +08:00
MrZ626
961cf347da 整理场地晃动相关代码 2021-08-21 01:56:29 +08:00
MrZ626
02c4655f0d 更新issue模板 2021-08-21 01:34:14 +08:00
MrZ626
b7b94ca900 修复旋转时场地晃动的逻辑会跟玩家sound有关 2021-08-21 01:15:54 +08:00
MrZ626
8671b52cbb Update CI
Co-authored-by: scdhh <51957264+shoucandanghehe@users.noreply.github.com>
2021-08-21 01:15:14 +08:00
MrZ626
9fe045b916 修复混战模式的被攻击线位置错误 2021-08-20 22:19:51 +08:00
MrZ626
4d2a914719 词典添加asc词条,英文等待翻译 2021-08-20 03:02:16 +08:00
MrZ626
1cfcf03ede 修改连接的服务器地址
修改更新历史和build号
2021-08-20 01:40:22 +08:00
MrZ626
a81d2e9ccc 修复tas的时候重开游戏会有问题 2021-08-20 01:34:04 +08:00
MrZ626
d7cf2c19ab 降低堆积模式CD评级/上榜的难度 2021-08-20 00:00:20 +08:00
MrZ626
42c72349dd 修改更新历史 2021-08-19 22:03:59 +08:00
MrZ626
027a228734 修复绘制任务会报错 2021-08-19 20:45:15 +08:00
MrZ626
543aed0350 控制台sudo模式开启后用#执行命令就可以,不需要一直输入sudo了 2021-08-19 20:43:46 +08:00
scdhh
fa704c5d66 添加自动Release CI,并重构现在Snapshot CI的一些步骤 #204 (#217)
* 修改updateConfVersion.py

* 添加更新conf.lua时修改存档目录的步骤

* Add files via upload

* 更改ci脚本以适配新版版本信息

* 修正问题

* 打包时添加version.lua

* 更新updateVersion.py以适配新版版本信息

* 删除被替换的py文件

* 同步release分支

* 修复Windows CI的bug

* 修正路径

* 修正Linux权限错误

* 尝试修复Windows CI错误

* 尝试修复Windows CI的bug

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-08-19 20:31:27 +08:00
MrZ626
ad6adb221c 修复进画面设置报错 close #216 2021-08-19 20:15:50 +08:00
MrZ626
5978a80b46 修复版面遮挡位置错误并把遮挡区域改为灰色 2021-08-19 17:05:00 +08:00
MrZ626
8c4f380d73 整理代码,大量绘制玩家组件的函数可以传入具体参数而不是就一个玩家对象 2021-08-18 23:40:11 +08:00
MrZ626
273de18ae3 控制台开启tas的时候会提示热键 2021-08-18 21:14:25 +08:00
MrZ626
44082fe78e 修改更新历史 2021-08-18 15:33:47 +08:00
MrZ626
9e6295e008 控制台输入布尔值的两个命令改成on/off,tas会修改设置,重启游戏依然生效 2021-08-18 15:33:28 +08:00
MrZ626
eaf4e3d71e 将.97,.97,.975的白色改为.97,.97,.97 2021-08-18 15:22:14 +08:00
MrZ626
bd52f1bb3c 调整行号显示,更加清晰 2021-08-18 15:21:49 +08:00
MrZ626
6682355c1b 新增SRS_plus旋转系统,添加简单的180度踢墙表
除了I块使用TRS表外其他块使用一个简单表
2021-08-18 15:12:32 +08:00
MrZ626
f76b08ab27 游戏设置页面同时显示方块的旋转中心样式 2021-08-18 15:09:44 +08:00
MrZ626
1943a55bcc GC.DO的画布初始颜色从#00000000改为#FFFFFF00,不再整体偏暗
部分素材会因此变化,故一起调整
2021-08-18 15:09:20 +08:00
MrZ626
9ec822a095 修复SRS连180度空转都没有 2021-08-18 14:08:59 +08:00
MrZ626
04f67d4052 支持双语公告根据设置语言选择性显示 close #78 2021-08-18 03:33:36 +08:00
MrZ626
d9251f16db 修改更新历史 2021-08-18 03:23:58 +08:00
MrZ626
f268ed8427 修复行号显示不正确(最后一次,大概) 2021-08-18 03:23:39 +08:00
MrZ626
58881f8ef5 再调整堆积模式:
三个难度都用100高度场地
第二个难度四/五连块2包:1包混合
第三个难度纯五连块
2021-08-18 03:21:28 +08:00
MrZ626
addc68b5f1 修复从剪切板导入地图不会解锁没解锁的模式 2021-08-18 02:50:02 +08:00
MrZ626
79368af6ee 修复MES模块弹出消息时卡顿会导致消息浮空 close #182 2021-08-18 00:04:56 +08:00
MrZ626
9f64d84c5a 完善截取release note的格式转换 2021-08-17 23:44:48 +08:00
MrZ626
bafc8abfc0 整理代码
预设虚拟按键的键位移入virtualkey模块
2021-08-17 18:35:26 +08:00
MrZ626
abaa962531 设置新增破纪录自动保存录像的开关(第一页往下拉) close #195 2021-08-17 15:57:55 +08:00
MrZ626
8049792dc4 玩家next序列长度增加至12(内部)
录像回放模式下会尝试显示至多12个next
2021-08-17 14:01:00 +08:00
MrZ626
7dbd5de980 词典新增骨块词条,英文等待更新 2021-08-17 12:51:47 +08:00
MrZ626
36a965a1c3 修改版本号和更新历史 2021-08-17 02:37:58 +08:00
MrZ626
d382bad8e1 tas模式下玩家会以回放模式绘制 2021-08-17 02:37:58 +08:00
MrZ626
186f18f4d2 tas模式下背景会有TAS大字 2021-08-17 02:21:54 +08:00
MrZ626
c777fc969a 优化切换到游戏场景时重置播放速度的逻辑 2021-08-17 02:12:16 +08:00
MrZ626
1b176ed5ad tas录像在录像列表会有标记 2021-08-17 02:12:03 +08:00
MrZ626
2654c8a614 优化tas工具的使用体验
暂时禁止录像中途进入tas模式
2021-08-17 01:45:43 +08:00
MrZ626
23e3dc465d tas功能需要到控制台使用tas命令开启,退出前有效 2021-08-16 23:38:17 +08:00
MrZ626
132cb89b90 整理代码,玩家的“录像绘制模式”不再自己决定而由外部传入 2021-08-16 23:15:46 +08:00
MrZ626
39ca55fd84 暂停界面会显示是否启用过TAS 2021-08-16 23:05:51 +08:00
MrZ626
d457fb0011 新增简易TAS工具,ctrl+T进入,f1暂停/开始,f2减速,f3加速/下一帧 2021-08-16 23:05:34 +08:00
MrZ626
42620bf739 整理Zframework代码
给所有模块进行更合理的分类
解除部分模块之间的依赖
修复image和bgm模块两个一般不会触发的小问题
close #209
2021-08-16 13:43:51 +08:00
MrZ626
fc8d19756d 修复皮肤设置菜单和联网对战菜单背景可能错误 2021-08-16 01:30:03 +08:00
MrZ626
45dce3210a 修复暂停时设置能进入彩蛋模式 close #206 2021-08-16 01:27:11 +08:00
MrZ626
9dbb32c982 修复退出自定义场地菜单重进后画笔设置会被恢复 close #213 2021-08-16 00:38:53 +08:00
MrZ626
cf84ab5921 修复自定义游戏可以在一些情况下同时打开ai和任务 close #211 2021-08-16 00:16:33 +08:00
MrZ626
05d01bbcc5 调整玩家两侧两个条的位置细节 2021-08-16 00:11:31 +08:00
scdhh
64b8058dc6 更新ci以适配新的版本信息文件 (#214)
* 修改updateConfVersion.py

* 添加更新conf.lua时修改存档目录的步骤

* Add files via upload

* 更改ci脚本以适配新版版本信息

* 修正问题

* 打包时添加version.lua

* 更新updateVersion.py以适配新版版本信息

* 删除被替换的py文件

Co-authored-by: MrZ_26 <1046101471@qq.com>
2021-08-15 22:19:10 +08:00
MrZ626
ba09d9440f 微调staff滚动速度
提升一位赞助人
2021-08-15 16:13:27 +08:00
MrZ626
21fc6505ff 修正极简连击显示尺寸没固定 2021-08-15 16:08:29 +08:00
user670
5a27de7550 Update dict_en.lua (#205)
- Added translation to the harddrop lock thing
- Changed SDF because Tetris Effect and Tetris 99 don't have strict 20x SDF
2021-08-15 15:54:08 +08:00
MrZ626
9c9324e7d9 修复next hold等图层在消除文本之上 2021-08-15 15:09:31 +08:00
MrZ626
e938621996 修正堆积模式数洞函数变量名错误 2021-08-15 00:25:07 +08:00
MrZ626
4cf1f4ba15 启动时如果是安卓系统就设置窗口resizable=false,防止未来更新SDL2后屏幕乱转 2021-08-15 00:13:02 +08:00
MrZ626
ce937bd0bb updateLog文件不再返回分行好的数据,方便ci截取段落作为release note 2021-08-14 22:55:00 +08:00
MrZ626
3e4963e56c 把当前版本信息从conf里独立出来,方便ci读取信息 2021-08-14 22:15:43 +08:00
MrZ626
adb205d8fa 移除堆积模式左侧信息 2021-08-14 17:54:53 +08:00
MrZ626
c4f6a6823d 版本号改为0.16.1,修改更新历史和build号 2021-08-14 14:29:19 +08:00
MrZ626
f53a37c496 调整堆积模式:
评判标准改为洞数
使用blockrain背景
检测到0.16.0版本会自动清除该模式记录
2021-08-14 14:28:19 +08:00
MrZ626
fbc1c6b60a 新增行号显示(设置可调透明度) close #196 2021-08-14 13:25:34 +08:00
MrZ626
6559a405e1 修复选中listBox时按空格会报错 2021-08-13 22:22:11 +08:00
MrZ626
45ec45c206 修复录像回放的时候如果设置暂停按钮在左边就会重叠 2021-08-13 21:45:37 +08:00
MrZ626
a0ff754464 微调皮肤设置页面布局 2021-08-13 21:43:22 +08:00
MrZ626
a7f0f30af2 词典添加防误硬降词条(英文待翻译) 2021-08-13 20:20:26 +08:00
MrZ626
c48d8f9a45 加载界面第一帧不显示底部文本,解决文字尺寸错误的不明问题 2021-08-13 19:51:49 +08:00
scdhh
276cbd6aa1 修改updateConfVersion.py > 在ci运行的时候修改游戏存档目录 (#202)
* 修改updateConfVersion.py

* 添加更新conf.lua时修改存档目录的步骤
2021-08-13 01:54:36 +08:00
MrZ626
6f1ba85869 小程序别踩白块使用stencil防止格子画到版面外面去 2021-08-13 01:48:48 +08:00
MrZ626
9bba05f26c 调整小程序别踩白块控件代码,修复显隐时机不正确并略微提升性能 2021-08-13 01:43:06 +08:00
MrZ626
5d75e11679 his序列生成算法最终返回结果的时候漏索引seqData导致返回的方块不正确 2021-08-13 01:25:15 +08:00
MrZ626
d58a67012d rnd序列生成算法在序列只有一个块的时候行为不正确 2021-08-13 01:22:23 +08:00
MrZ626
7e41b747dd 小程序别踩白块加入自定义颜色/音乐和一些练习用4k键型模式 2021-08-13 01:14:54 +08:00
MrZ626
4dd23b8e76 调整打开存档文件夹的按钮功能 2021-08-12 19:58:27 +08:00
MrZ626
19403e0ae5 升级一个赞助人 2021-08-12 19:54:47 +08:00
MrZ626
2ff87a0655 添加其他语言的模式锁定提示文本 2021-08-12 19:32:20 +08:00
MrZ626
f0b12799b8 修复合并的pr里一些小问题,整理代码,美化未解锁的模式图标显示 2021-08-12 19:30:06 +08:00
Trebor Huang
c81850cb36 显示即将解锁的关卡 closes #194 (#198)
* 显示即将解锁的关卡, closes #194

除了中文和英文之外的语言我还没处理。

* 成绩从Grade改为Rank
2021-08-12 19:06:45 +08:00
MrZ626
d7fe8bfeee 微调自定义序列的按键位置
整理代码
2021-08-12 17:50:09 +08:00
MrZ626
06c5beae7d 修复加载语言信息没有文本的模式时不会因为取不到模式名而报错 2021-08-12 17:50:06 +08:00
MrZ626
c929ddbe97 修复几个pc模式的左侧信息文本重叠 2021-08-12 17:50:03 +08:00
scdhh
77b557fb13 在actions产物文件名里添加ci编号 (#193)
* 删除不需要的re模块

* 添加编译过程中向源码添加提交hash的步骤

* 修正变量

* 整理代码

* 修正Android的CI问题

* actions产物名添加ci编号

* 修正变量名

* 修改文件名格式

* 修改CI文件名格式,避免在bash上出问题

* 更改CI文件名格式,优化观感

* 或许适当缩短更好些
2021-08-12 17:21:18 +08:00
MrZ626
dbc58e0bc9 修复暂停时数据出现换行问题 2021-08-12 16:04:15 +08:00
MrZ626
1bb5e0c056 调整结算词的尺寸,添加一个tip 2021-08-12 01:32:35 +08:00
MrZ626
31c03681fa 添加一个赞助人 2021-08-12 01:12:08 +08:00
MrZ626
742dc43c5d 移除kpm速度表
bpm表样式改回类c2
整理代码
2021-08-12 01:12:03 +08:00
MrZ626
a9a241cc41 修复场地顶线(方块出生线)在垃圾行升起过程中显示不正确 2021-08-11 22:02:52 +08:00
MrZ626
3ffaeed317 修复生存模式左侧文本没对齐 2021-08-11 22:02:24 +08:00
MrZ626
8950cf9533 修复场地顶线之上的红色区域绘制范围不正确 close #191
略微减小该红色区域透明度
2021-08-11 21:20:40 +08:00
MrZ626
21bdb374d0 修复混战模式攻击模式指示器不见了 2021-08-11 19:08:37 +08:00
MrZ626
3b2ce1e85a 修正两个皮肤文件名变化后初始化时尝试加载的文件名没改 2021-08-11 18:47:06 +08:00
MrZ626
ffc84334bf 修改两个皮肤文件的文件名,解决git文件大小写敏感导致的小问题 2021-08-11 17:16:36 +08:00
MrZ626
c37370a50a 整理代码 2021-08-11 16:17:12 +08:00
MrZ626
43c8218a14 单机游戏默认菜单按钮位置设为middle 2021-08-11 16:17:12 +08:00
MrZ626
625c859e0d 修复小程序cubefield遮挡方块颜色问题 2021-08-11 16:17:12 +08:00
MrZ626
2ee2eb4274 切换场景后自动触发一次控件的cursorMove 2021-08-11 16:17:12 +08:00
MrZ626
6262ad637d 由于卡顿,关闭msaa 2021-08-11 16:17:12 +08:00
MrZ626
df78225114 移除三个不必要的collectgarbage 2021-08-11 16:17:12 +08:00
MrZ626
130de57d1a 移除对战背景列表里两个不合适的 2021-08-11 16:17:12 +08:00
MrZ_26
d7aba9bb64 Delete Classic.png 2021-08-11 02:55:14 +08:00
MrZ_26
77bf9c6f16 Delete WTF.png 2021-08-11 02:55:06 +08:00
MrZ626
b44d144b26 特别感谢添加一位
赞助添加一位
2021-08-11 01:38:10 +08:00
MrZ626
376a528fac 选择语言时会先清除上一个文本然后再生成新的 close #189 2021-08-10 23:47:00 +08:00
MrZ626
6dec156d4d 修改日志和build号 2021-08-10 20:27:07 +08:00
MrZ626
372f27b6ac 提升puzzleMark材质透明度
略微提升自定义-拼图性能
2021-08-10 20:09:47 +08:00
MrZ626
d6d2d394bc 修改玩家绘制流程,修复镜头平移和遮罩的一些冲突 2021-08-10 19:54:51 +08:00
MrZ626
7c326ce0d7 修复联网游戏房间内菜单按钮位置不正确 2021-08-10 17:59:52 +08:00
MrZ626
1ae26d39c2 再次修复进入游戏场景时初始化代码顺序错误 2021-08-10 16:13:36 +08:00
scdhh
702d427183 修正Android的CI问题 (#185)
* 删除不需要的re模块

* 添加编译过程中向源码添加提交hash的步骤

* 修正变量

* 整理代码

* 修正Android的CI问题
2021-08-10 15:41:20 +08:00
MrZ626
432ba338b7 添加issue模板 close #187 2021-08-10 15:37:40 +08:00
scdhh
c1ce09ac52 在自动打包的时候添加提交hash #176 (#184)
* 删除不需要的re模块

* 添加编译过程中向源码添加提交hash的步骤

* 修正变量

* 整理代码
2021-08-10 03:38:59 +08:00
MrZ626
57982d3c43 修改更新历史 2021-08-10 03:34:41 +08:00
MrZ626
c168a6c685 整理代码 2021-08-10 03:33:25 +08:00
MrZ626
17479ac08b 玩家绘制模块改动,applyFieldOffset函数改为applyField,组合更多功能
修复部分模式往场地内部绘制信息时偏移问题
close #181
2021-08-10 03:32:07 +08:00
MrZ626
a73819214b 修改更新历史和build号 2021-08-10 02:51:33 +08:00
MrZ626
c5730b31f7 tsd困难在同一列只允许连续做最多三个T2,微调参数 2021-08-10 02:50:51 +08:00
MrZ626
4bfebdea13 整理旋转相关代码,希望能进一步解决神秘的旋转时报错问题 2021-08-10 02:02:47 +08:00
MrZ626
d040754d8c 取消暂停过程中允许再次暂停 2021-08-10 01:09:34 +08:00
MrZ626
7943ebc8f8 略微减轻lightning2背景瞎眼程度 2021-08-10 00:01:14 +08:00
MrZ626
5ce0b90d9f 所有踢墙表数据和旋转中心位置数据完全独立,希望能解决神秘的旋转时报错问题,需要再研究 2021-08-09 23:56:19 +08:00
MrZ626
e97d892926 降低隐形n/h/l的S和A评级标准 2021-08-09 22:57:37 +08:00
MrZ626
3b026ce204 降低无尽pc的S线至50,同时加快速度提升 2021-08-09 22:48:08 +08:00
MrZ626
d269828924 删除一个已经合并到TABLE模块的无用文件 2021-08-09 22:34:42 +08:00
MrZ626
1e1560651a 修复debug模式下f4可能引起报错 close #183 2021-08-09 22:34:16 +08:00
MrZ_26
782e1ef506 Merge pull request #180 from Trebor-Huang/main
修正Android与OS X的CI问题
2021-08-09 19:55:02 +08:00
Trebor-Huang
3a3c805792 修正Android与OS X的CI问题 2021-08-09 14:22:37 +08:00
Trebor-Huang
51235a61ad Merge branch '26F-Studio-main' 2021-08-09 14:16:00 +08:00
Trebor-Huang
f493de998c Merge branch 'main' of https://github.com/26F-Studio/Techmino into 26F-Studio-main 2021-08-09 14:15:33 +08:00
MrZ626
72b5acfece 修正旋转系统设置重置条件 2021-08-09 14:02:43 +08:00
MrZ626
176ddf6abb 完善xiaoya语音包 2021-08-09 12:45:41 +08:00
MrZ626
44c52300e4 更新世界纪录 2021-08-09 12:36:12 +08:00
MrZ626
2eae6cdfda 修复计算器的一些问题 close #178 close #179 2021-08-09 11:53:56 +08:00
MrZ_26
0f896d0a4f Merge pull request #177 from shoucandanghehe/main
实时更新的actions产物文件名
2021-08-09 11:37:18 +08:00
MrZ626
02189c4262 可以修改O块初始方向 2021-08-09 11:35:04 +08:00
d649a0caa1 统一代码风格 2021-08-09 08:21:31 +08:00
e28894549c C M D 害 人 2021-08-09 08:16:11 +08:00
b3ef90237f 又换回了bat尝试解决无法添加变量的问题 2021-08-09 07:52:42 +08:00
ebc4e08986 尝试使用python解决bat无法添加变量的问题 2021-08-09 07:39:26 +08:00
8d74a35f29 添加version至环境变量 2021-08-09 07:17:19 +08:00
a37e164c0b 修正python脚本路径 2021-08-09 07:12:43 +08:00
a71b504589 修改actions上传名称,修改编译时依赖的python脚本 2021-08-09 07:10:40 +08:00
MrZ626
20cd27d7f6 再微调大量模式的左侧信息显示
stack模式左侧信息添加"块数"标签
2021-08-09 03:16:40 +08:00
MrZ626
ac889dcba9 修复进入游戏场景时初始化代码顺序错误 2021-08-09 02:33:05 +08:00
MrZ626
70bbb12285 调整游戏底部常驻版本号,移除short项 2021-08-09 02:23:39 +08:00
MrZ626
e7e568f67a 微调几乎所有模式左侧信息位置,对齐hold框中间 2021-08-09 02:22:15 +08:00
MrZ626
3452ae1d66 修改更新历史和版本号 2021-08-09 01:40:00 +08:00
MrZ626
2ad336b13a 添加游戏中菜单按钮位置设定 2021-08-09 01:39:18 +08:00
MrZ626
78b15b78fa 每个旋转系统有自己独特的旋转中心样式
整理代码
2021-08-09 01:15:04 +08:00
MrZ626
eb7b637703 添加Classic和Classic_plus旋转系统 close #173 2021-08-09 00:13:57 +08:00
MrZ626
b083a0801f 旋转系统模块重构,支持无旋转中心 close #168 2021-08-08 23:51:46 +08:00
MrZ626
471f1076c4 TABLE.shift新增depth参数 2021-08-08 23:51:46 +08:00
MrZ626
e50fe63e02 TABLE.copy新增depth参数 2021-08-08 23:51:45 +08:00
MrZ626
7682054dea 微调lNavy颜色 2021-08-08 23:51:45 +08:00
MrZ626
1e3c2f039b 修复暂停界面雷达图线框显示问题 2021-08-08 23:51:45 +08:00
MrZ626
a832e56b42 统一四连块英文名为Tetromino 2021-08-08 15:54:21 +08:00
MrZ626
3858cfd9ba 整理代码 2021-08-08 15:04:44 +08:00
MrZ626
5b4fd892ff 修正kpm计算一处多余的+1,优化更新格子可见性代码 2021-08-08 03:36:16 +08:00
MrZ626
4ffa88805c 再调整暂停ui 2021-08-08 03:08:51 +08:00
MrZ626
2a0b26f2fd GC拓展模块调整,圆角正多边形成为绘图函数 2021-08-08 03:08:35 +08:00
MrZ626
30308eb308 调整两个彩色logo的颜色量 2021-08-08 00:02:25 +08:00
MrZ626
5f8cbe524e 圆角圆角圆角圆角圆角 2021-08-08 00:02:07 +08:00
MrZ626
a2f0142712 调整全局颜色表,降低饱和度 2021-08-07 23:37:50 +08:00
MrZ626
d2c6529d2a 修复计算器的一些小bug 2021-08-07 22:05:02 +08:00
MrZ626
b23e32df7f 修改更新历史和build号 2021-08-07 20:24:37 +08:00
MrZ626
a94a0a2f87 修改几个旋转系统的名字,更新时自动重置旋转系统设置 2021-08-07 20:20:07 +08:00
MrZ626
6fe40e9438 高速经典场地高度改为19 close #169 2021-08-07 20:12:01 +08:00
MrZ626
d4523e8e1d 添加隐藏模式marathon_bfmax的入口并修改tip关于隐藏模式的说法 2021-08-07 20:02:43 +08:00
MrZ626
9fadef2a6e 修复皮肤设置界面旋转方块几圈后重进会看到旋转动画 2021-08-07 20:00:51 +08:00
MrZ626
1970a1b47d 改正一处拼写错误,简化the_box谜题 2021-08-07 19:51:06 +08:00
MrZ626
19d090859c 减暗暂停的背景色,取消暂停的动画改成条形计时器 2021-08-07 19:51:02 +08:00
MrZ626
7fda77bd1e 自定义游戏里重设全部的同时也会清空数据文件 2021-08-07 19:39:31 +08:00
MrZ626
34c14c922c 再调整暂停界面ui,mod和暂停统计不重叠,开始游戏前整个右侧信息框和相关按钮都不出现 2021-08-07 17:40:11 +08:00
MrZ626
0f8a1057dc 所有mod的颜色换成浅色 2021-08-07 17:09:08 +08:00
MrZ626
a74faca9cb 大改暂停界面ui 2021-08-07 17:09:01 +08:00
MrZ626
336aa85cf8 key控件新增fShade属性(自定义亮起素材) 2021-08-07 16:56:08 +08:00
MrZ626
43710a4c4d GC.DO添加fRPol命令 2021-08-07 16:55:15 +08:00
MrZ626
451cf90939 整理代码 2021-08-07 15:42:00 +08:00
MrZ626
6713f48361 优化控制台sudo命令的交互 close #171 2021-08-07 15:27:38 +08:00
MrZ626
f6e3b35482 DOGC移入GC拓展模块,GC.DO添加dRPol(圆角正多边形)命令 2021-08-07 14:55:19 +08:00
MrZ626
1d7e58d3bf 移除联网对战bgm列表里的warped 2021-08-07 01:15:51 +08:00
MrZ626
b501cd374b 整理代码,调整大量场景内绘图用的纯白色和纯黑色 2021-08-06 19:16:01 +08:00
MrZ626
e6f5723ecc 整理代码,混战模式信息显示函数移入玩家模块统一调用 2021-08-06 17:43:43 +08:00
MrZ626
998c79d331 进度显示器移入常用玩家draw函数并微调 2021-08-06 09:58:26 +08:00
MrZ626
a21d6e834d 整理代码,从Player:drop中抽离出几个过程 2021-08-06 01:49:28 +08:00
MrZ626
a4541dd764 重开按钮改成图标,微调模式文字位置 2021-08-06 01:07:05 +08:00
MrZ626
e788dd543e 再调整暂停界面ui 2021-08-06 00:47:53 +08:00
MrZ626
f24fa81d87 微调staff表,修改更新历史和build号 2021-08-06 00:26:49 +08:00
MrZ626
20fb2a3e92 大改暂停界面ui 2021-08-06 00:22:35 +08:00
MrZ626
e7f77291e4 修游戏中ui小问题 2021-08-06 00:22:19 +08:00
MrZ626
fa0848c8b2 调整录像回放时逐帧按钮图标,修复按空格按钮状态未切换 2021-08-06 00:14:43 +08:00
MrZ626
8a740091b3 修复ARS的180有踢墙 2021-08-05 22:15:03 +08:00
MrZ626
5fa3be5886 缩小三格高的方块在next/hold里的显示尺寸 2021-08-05 22:08:11 +08:00
MrZ626
a9d2f097d8 调整游戏内ui和控件ui:
默认背景色调整
减少纯白色使用
减小线宽
增加圆角
2021-08-05 17:58:09 +08:00
MrZ626
450483acc7 关闭背景的默认颜色修改 2021-08-05 15:43:19 +08:00
MrZ626
43019185a8 TRS的R/Y块踢墙表添加一项 2021-08-05 15:42:53 +08:00
MrZ626
f537b36662 修改词典中ppt词条说法 2021-08-05 15:42:26 +08:00
MrZ626
98385b8b56 改对readme里官网链接 2021-08-05 14:45:31 +08:00
MrZ626
8d44046a90 修复asc踢墙表第一项不是00和按180度旋转会爆炸 2021-08-05 14:27:05 +08:00
MrZ626
9b1ab459a0 添加两个赞助者
修改更新历史
2021-08-05 13:42:50 +08:00
MrZ626
f4c0d19734 房间版本不一致时显示的文本会根据设置语言变化 2021-08-04 21:24:43 +08:00
MrZ626
f088bdcf8b 修复松开鼠标可能不触发场景内事件 2021-08-04 20:15:15 +08:00
Trebor Huang
60600dbe2f 修正OS X CI错误 (#166)
* 增加OS X签名

等证书搞好之后改一下里面的id之类的就行。

* 添加证书信息

* 修正OS X CI错误
2021-08-04 20:11:07 +08:00
Trebor-Huang
eb95cc4b47 修正OS X CI错误 2021-08-04 19:57:51 +08:00
Trebor Huang
57dfdacffa Merge branch '26F-Studio:main' into main 2021-08-04 19:53:03 +08:00
scdhh
0c839790fe 修正actions使用的macos版本 2021-08-04 19:47:18 +08:00
scdhh
1f29916e09 修正actions使用的macos版本 2021-08-04 19:45:16 +08:00
MrZ626
310023dc94 修复长按hold成功后会触发IHS close #165 2021-08-04 18:33:39 +08:00
Trebor Huang
9448dcefb4 增加OS X签名 (#161)
* 增加OS X签名

等证书搞好之后改一下里面的id之类的就行。

* 添加证书信息
2021-08-04 18:33:06 +08:00
MrZ626
167e77ddf2 修正ws模块连接成功后没有把timeout设为0 2021-08-04 00:31:31 +08:00
MrZ626
dc586ad82e 修复回放录像时显示的玩家名不正确 2021-08-04 00:27:52 +08:00
MrZ626
6d331f882f 修改更新历史和build号 2021-08-03 23:59:20 +08:00
MrZ626
b945760c72 再调整堆积模式参数 2021-08-03 23:57:59 +08:00
MrZ626
98aa49c2c3 导入录像时会先检测重复文件名 2021-08-03 23:50:46 +08:00
MrZ626
78feab88bf 文件模块save方法新增d参数 2021-08-03 23:50:33 +08:00
MrZ626
6f005d467d 微调语言文件一两条 2021-08-03 23:50:01 +08:00
MrZ626
324011f01b 回放列表添加导出到剪切板/从剪切板导入的按钮 2021-08-03 23:13:01 +08:00
Trebor-Huang
0d97d2a02d 添加证书信息 2021-08-03 22:23:40 +08:00
MrZ626
37bec38524 添加几个中文tip 2021-08-03 20:59:10 +08:00
MrZ626
847795c0ef 调整堆积模式规则 2021-08-03 20:52:00 +08:00
Trebor-Huang
aa1a5a1550 增加OS X签名
等证书搞好之后改一下里面的id之类的就行。
2021-08-03 17:48:37 +08:00
MrZ626
997b3cbecd 整理代码,添加回放文件格式说明 2021-08-03 16:31:19 +08:00
MrZ626
652aced790 点击进入房间后一段时间不能进行其他操作 2021-08-03 16:30:27 +08:00
MrZ626
47af067c03 修复房间列表输密码的时候部分按键还会有其他功能 2021-08-03 15:48:35 +08:00
MrZ626
5b31e3eb87 调整确认删除的提醒问号时间计算方法和位置 2021-08-03 15:35:51 +08:00
MrZ626
0bb4b069e7 更换堆积40/100模式的序列 2021-08-03 15:22:53 +08:00
MrZ626
eded658d38 修正序列设置有错误时弹出信息有误 2021-08-03 15:22:37 +08:00
MrZ626
1caeb0ed6b 修改更新历史 2021-08-03 03:18:37 +08:00
MrZ626
611a1f0a04 更换挖掘和生存-3/4模式的bgm 2021-08-03 03:18:35 +08:00
MrZ626
13e58e6f80 新增三个堆叠模式 close #142 2021-08-03 03:11:21 +08:00
MrZ626
d6853d381f 修正tsd_u模式的标志光柱位置小bug 2021-08-03 02:38:26 +08:00
MrZ626
b6cc14fe2f 更新模式文件说明文档
修改更新历史
2021-08-03 02:09:15 +08:00
MrZ626
9b1f9fa9dd 整理模式代码:
移除无用的pauseLimit
移除重复的模式load函数(自动创建一个玩家)
2021-08-03 02:05:13 +08:00
MrZ626
cca53b6376 第一次启动会自动进入语言设置菜单 close #150 2021-08-03 01:57:18 +08:00
MrZ626
1aa991f89f 静音按钮再次点击可以重新开启声音了 2021-08-03 01:27:13 +08:00
MrZ626
7407bbefdf tsd_u中结束游戏的重复T2不计入成绩 2021-08-03 00:37:49 +08:00
MrZ626
40fb835d9c 大量调整中文tip 2021-08-03 00:34:14 +08:00
MrZ626
e4df92fb54 更新世界纪录
语音staff添加Xiaoya
2021-08-03 00:10:22 +08:00
MrZ626
7b9760e376 修正加载小问题 2021-08-02 23:47:54 +08:00
MrZ626
52607545fa 修改更新历史和build号 2021-08-02 23:34:33 +08:00
MrZ626
849756531d 从暂停界面回到游戏界面不改变回放速度 2021-08-02 23:34:32 +08:00
MrZ626
2e16240fb8 新增tsd极限模式(填坑) close #157 2021-08-02 23:34:32 +08:00
MrZ626
181beda455 提升tsd困难的难度,调整评分标准 2021-08-02 23:34:32 +08:00
MrZ626
d0f77f4b78 lastPiece新增放置的方块位置、中心位置和朝向信息 2021-08-02 23:34:32 +08:00
MrZ626
dea2f6c8d7 修复录像回放速度和按钮状态刷新问题 close #159 close #160 2021-08-02 22:09:50 +08:00
MrZ626
615fd414ec 恢复刷新在线玩家人数并且降低请求频率 2021-08-02 21:12:01 +08:00
MrZ626
7296498410 调整几个中文tip 2021-08-02 21:05:11 +08:00
MrZ626
554970c036 修复wing背景水晶尺寸没有跟随屏幕尺寸调整,微调水晶颜色 2021-08-02 21:01:28 +08:00
MrZ626
057abe6ba5 整理代码,加载设置和统计的代码移至main.lua 2021-08-02 16:58:21 +08:00
MrZ626
3b215eb7af TABLE扩展模块新增一个函数 2021-08-02 16:58:21 +08:00
MrZ626
1abaa0e5c5 添加一个赞助者 2021-08-02 16:53:16 +08:00
MrZ626
0c5cb1686e 更新特别感谢名单 2021-08-02 15:00:00 +08:00
MrZ626
21f0aabae0 取消加载完成时的emit音效 2021-08-02 03:30:10 +08:00
MrZ626
e5458c1ab9 升级STRING.readLine功能 2021-08-02 03:13:51 +08:00
MrZ626
a30c0395aa 对战房间背景和音乐不再能自定义,都改为列表随机 2021-08-01 19:47:59 +08:00
MrZ626
0b9006faf3 修复读取到本地没有的旋转系统会直接蓝屏
升级房间版本号
整理代码
2021-08-01 19:47:59 +08:00
MrZ626
adefb776fe 修复加载自定义模式参数文件时可能报错 2021-08-01 19:47:59 +08:00
MrZ626
ee089b0f31 master_ph模式更换背景 close #158 2021-08-01 19:47:58 +08:00
flaribbit
44200458c5 Merge pull request #156 from Trebor-Huang/main
add CI for macOS
2021-08-01 11:35:00 +08:00
flaribbit
5d2d4eae17 Update build.yml
add download link, remove blank lines
2021-08-01 11:33:44 +08:00
Trebor Huang
25f87cae53 [no ci] CI for OS X
依赖于一个还没上传的模板,还没决定这个要放在哪,所以链接留空。
2021-08-01 03:05:48 +08:00
Trebor Huang
1e4f11a6ce Merge branch 'main' of https://github.com/Trebor-Huang/Techmino into main 2021-08-01 02:03:57 +08:00
MrZ626
36b9dcaf43 修复没有自定义游戏的场地数据等文件在启动时会直接报错 2021-08-01 01:25:33 +08:00
MrZ626
ad3aff6a50 修改更新历史,整理代码 2021-08-01 00:49:20 +08:00
MrZ626
3bd6da6276 鼠标松开时如果有选中的控件就不触发场景的鼠标松开/点击事件 2021-08-01 00:44:09 +08:00
Trebor Huang
3ccc8cdd7b 增加OS X支持 (#154)
需要CCloader.dylib以及*.icns格式的图标。同时要按照love官网的教程打包游戏为*.app形态,修改Info.plist。
我暂时没有办法让游戏在*.love的形态下加载dylib。但是以文件夹形式可以直接将dylib文件放在根目录;app形式可以放在Framworks处。
我稍后会在 https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper 详细描述得到CCloader.dylib的办法。
2021-07-31 23:42:41 +08:00
Trebor Huang
501f3a4eec 增加OS X支持
需要CCloader.dylib以及*.icns格式的图标。同时要按照love官网的教程打包游戏为*.app形态,修改Info.plist。
我暂时没有办法让游戏在*.love的形态下加载dylib。但是以文件夹形式可以直接将dylib文件放在根目录;app形式可以放在Framworks处。
我稍后会在 https://github.com/26F-Studio/cold_clear_ai_love2d_wrapper 详细描述得到CCloader.dylib的办法。
2021-07-31 23:00:16 +08:00
MrZ626
cfc6f65da5 游戏启动的时候检测配色不能为炸弹格 close #147 2021-07-31 21:49:40 +08:00
MrZ626
5853ac1823 马拉松模式添加倒计时线 close #153 2021-07-31 20:24:44 +08:00
MrZ626
3057b2a12f master-ex新增段位点显示 close #149 2021-07-31 20:00:13 +08:00
MrZ626
9ce90b76a4 应本人要求修改一个赞助id 2021-07-30 00:00:10 +08:00
MrZ626
e016a20c21 STRING模块新增两个编解码函数 2021-07-29 15:26:37 +08:00
user670
8fb8352c8d Update dict_en.lua (#145) 2021-07-28 03:16:52 +08:00
MrZ626
ed7ecd98c4 整理代码,修改更新历史 2021-07-28 03:15:05 +08:00
MrZ626
512c78e192 自定义游戏的序列任务场地等数据退出后会保存 2021-07-28 03:10:29 +08:00
MrZ626
81b3082087 修复数据升级时两个20G模式不正确 2021-07-27 14:52:03 +08:00
MrZ626
6fff929856 更新框架,aDraw模块改名gcExtend 2021-07-26 17:30:35 +08:00
MrZ626
e636deb08e 修改更新历史 2021-07-26 17:07:28 +08:00
MrZ626
464d5bedda 完善控制台内部分命令的描述文本 2021-07-26 17:07:13 +08:00
MrZ626
9cc70d4212 微调两个文档 2021-07-26 03:10:11 +08:00
MrZ626
737cdb74bd 中文词典添加(修改)旋转系统与说明并给英文词典留好位置 2021-07-26 03:02:18 +08:00
MrZ626
a833139e13 修改更新历史和build号 2021-07-26 01:25:29 +08:00
MrZ626
4ec9377f78 整理代码 2021-07-26 01:25:26 +08:00
MrZ626
e9e96f287f 修复image模块加载图片组会报错 2021-07-26 01:25:18 +08:00
MrZ626
57745f5d0a 回放时版面遮挡会变成半透明 close #143 2021-07-25 23:33:04 +08:00
MrZ626
515c2d1f60 COLOR模块的彩虹函数支持补充alpha参数(直接返回,保证格式) 2021-07-25 23:32:29 +08:00
MrZ626
decbde8d63 修复BiRS的J和L的1/3状态180度旋转用表错误 2021-07-25 23:16:38 +08:00
MrZ626
08c892d4ff TRS的Ospin表增加SZ按反时的尝试 2021-07-25 22:20:41 +08:00
MrZ626
850a31d172 BRS在程序内名称改为BiRS(防止和BPS-RS歧义)
修正BiRS中Z5和S5的180度转的表使用错误
整理代码
2021-07-25 22:07:01 +08:00
MrZ626
6ae419eeee 特别感谢名单添加yuhao7370 2021-07-25 03:00:33 +08:00
MrZ626
40bae13411 移除badapple背景 2021-07-25 02:54:47 +08:00
MrZ626
61946fe52e 整理代码 2021-07-25 02:54:47 +08:00
MrZ626
27cede0fad 优化游戏场景性能,移除回放按钮hideF函数 2021-07-25 01:43:22 +08:00
MrZ626
adae63eabb 修改更新历史和build号 2021-07-25 01:14:03 +08:00
MrZ626
3ff5f74af7 BRS改名BRS(Bias RS)
调整BRS的O的0→2,2→0踢墙表为无水平踢表
再调整BRS踢墙过滤条件,有偏移时不再禁止上踢,水平方向上偏移和踢墙偏移允许反向,但偏移和总位移不能反向
2021-07-25 00:53:04 +08:00
MrZ626
c3c151b375 小程序cubefield的碰撞判定移出draw,解决低绘制帧率导致漏判定的问题 close #138
(低逻辑帧率还是会漏)
2021-07-24 18:23:21 +08:00
MrZ626
2163d09c08 修复序列和任务超长导致渲染开销太大卡死 close #137 2021-07-24 16:42:31 +08:00
MrZ626
ea70c2ef9e 修改更新历史和赞助者名单 2021-07-24 15:52:47 +08:00
MrZ626
53f949571e ZRS改名BRS(Boost RS) 2021-07-24 15:49:24 +08:00
MrZ626
1d64a6b799 再调整ZRS(修改过滤条件,最终位移距离不超过√5并且禁止踢墙方向和水平偏移反向) 2021-07-24 15:49:21 +08:00
MrZ626
84b5790ab2 再升级websocket模块 2021-07-24 15:49:17 +08:00
MrZ626
6aa8de3506 调整zrs踢墙表 2021-07-24 15:49:14 +08:00
MrZ626
c1b55139b6 整理代码 2021-07-24 15:49:09 +08:00
MrZ626
670417dc6a 修改更新历史和build号 2021-07-24 15:49:06 +08:00
MrZ626
bd1d1f8ae4 添加应用所有设置的函数,修复导入设置后部分设置不生效 2021-07-24 15:49:03 +08:00
MrZ626
29a922e41f 大师l/u改为n/h(两个旧模式文件为看录像保留)
n难度新增500~1000,使用新bgm:secret8th remix
h难度降低时间门槛
2021-07-24 15:48:59 +08:00
MrZ626
ac9fd5e618 调整五首bgm 2021-07-24 15:48:48 +08:00
MrZ626
9d6a74680a 调整TRS中S5和Z5的踢墙表 2021-07-22 22:27:04 +08:00
MrZ626
9d52cf27d8 整理代码 2021-07-22 00:14:24 +08:00
huaji2369
35c38387e1 在不爆炸的前提下减少AI与自定义序列同开的限制 (#136) 2021-07-22 00:11:25 +08:00
MrZ626
908997ddef 调整生存n的bgm 2021-07-22 00:09:14 +08:00
MrZ626
cf0b95e955 新BGM:there(用于挖掘) 2021-07-22 00:08:47 +08:00
MrZ626
5bf5d44c96 旋转系统可以开关每个方块是否显示旋转中心 2021-07-21 16:29:04 +08:00
MrZ626
854776dac0 继续微调ZRS(修复合成dx绝对值最大限制计算错误) 2021-07-21 16:24:52 +08:00
MrZ626
6e1ba35ca3 修改更新历史和build号 2021-07-21 15:53:01 +08:00
MrZ626
a5a41e3b0c 修复触屏设置在窗口非默认长宽比时边缘网格缺失 2021-07-21 15:52:35 +08:00
MrZ626
e78114dd53 改进debug模式下光标位置显示 2021-07-21 15:33:07 +08:00
MrZ626
6174f3709c 修复视频设置里影子预览导致的报错 2021-07-21 15:10:36 +08:00
MrZ626
7f1f9b0221 修复有屏幕滚动的场景按住鼠标拖动时控件会失去焦点 2021-07-21 15:03:31 +08:00
MrZ626
0af4e2adb9 修改更新历史和build号 2021-07-21 04:44:51 +08:00
MrZ626
d5ab596749 移除SFX和VOC模块的loadOne方法 2021-07-21 04:40:20 +08:00
MrZ626
3d128d4850 删除多余的加载文本 2021-07-21 04:39:53 +08:00
MrZ626
46aa6fcc48 新BGM:beat5th(用于竞速五连块) 2021-07-21 04:39:33 +08:00
MrZ626
60d1eb4e3c 升级SKIN模块,不再需要在启动时就加载好方块贴图资源 2021-07-21 04:37:35 +08:00
MrZ626
4b2c55d90e 升级image模块,不再需要在启动时就加载好图片资源 2021-07-21 02:45:56 +08:00
MrZ626
0023c0a4c6 升级bgm模块,不再需要在启动时就加载好音乐资源 2021-07-21 02:36:11 +08:00
MrZ626
0265793a3f 整理socket库代码 2021-07-21 00:52:06 +08:00
MrZ626
b99d247ba5 大型重构websocket模块 2021-07-20 21:20:47 +08:00
MrZ626
bdc1e592a7 控制台移除移除水印的命令 2021-07-20 20:11:43 +08:00
MrZ626
d3ef7e7f81 整理代码 2021-07-20 15:16:52 +08:00
user670
78dfec15d6 Adjust the English in a console command 2021-07-20 15:07:10 +08:00
MrZ626
7a824e09a3 控制台resetall命令删除文件时机改为退出前最后一瞬间 close #133 2021-07-20 14:03:30 +08:00
MrZ626
7c58355048 调整中文和yygq加载完成文本 2021-07-20 14:01:59 +08:00
user670
89662e7e2c adjust lang_en -> loadText.finish 2021-07-20 14:00:15 +08:00
MrZ626
718fc750d9 websocket的子线程代码分离至单独文件并移除debugMode 2021-07-20 02:44:01 +08:00
MrZ626
9e143fbb73 整理代码 2021-07-20 02:39:15 +08:00
MrZ626
c561181bdf NET模块收到closeMessage时弹出的断开消息格式修改 2021-07-20 01:04:16 +08:00
MrZ626
b45920109f 尝试捕捉一个错误的具体位置 2021-07-19 16:51:08 +08:00
MrZ626
07290fe7ce 调整中英tip 2021-07-19 16:14:26 +08:00
MrZ626
944f57b04a 微调main文件开头说明 2021-07-19 15:37:56 +08:00
MrZ626
4079c6596e 调整中文tip 2021-07-19 15:36:05 +08:00
MrZ626
defe6c4f26 合并load和intro场景 2021-07-19 15:34:28 +08:00
MrZ626
ed2a46e059 intro动画加入一点颜色 2021-07-19 02:12:05 +08:00
MrZ626
498a0ef7e8 几个音频模块和skin模块load附加必须先init的条件 2021-07-18 23:33:45 +08:00
MrZ626
06d34d8c55 优化加载动画 2021-07-18 17:17:28 +08:00
MrZ626
cd670212a2 修改更新历史,补上部分issue编号 2021-07-18 16:36:52 +08:00
MrZ626
41e58e0bd6 修复marathon_bfmax死亡判定不合适 close #127 2021-07-18 16:16:39 +08:00
MrZ626
b0af47a422 master-u模式的500限制时间为183秒 2021-07-18 02:02:06 +08:00
MrZ626
ccfb0c72dd dropper添加一个请勿修改语法错误的注释(纪念意义) 2021-07-18 01:39:10 +08:00
MrZ626
be1b87a1af 修改特别感谢列表 2021-07-18 00:52:05 +08:00
user670
33ffb80241 Make languages directly use plrual for "X players remaining" (#128) 2021-07-18 00:47:39 +08:00
MrZ_26
42b61af93d Merge pull request #125 from 26F-Studio/user670-patch-20210717-eng-lang-fix
Update lang_en.lua
2021-07-17 05:23:04 +08:00
user670
cfdba225e0 Update lang_en.lua
updated the loadtext thing
2021-07-17 05:17:25 +08:00
user670
8c0b3fd31d Update lang_en.lua
Remove an extra full stop
2021-07-17 04:32:42 +08:00
MrZ626
ef88d3e437 新增noInitSZO模式参数 close #121 2021-07-17 02:29:33 +08:00
MrZ626
cbbb04655b 修复加载场景点鼠标报错 2021-07-17 02:23:42 +08:00
MrZ626
956b768475 再调整ZRS系统(新增±2,0踢墙),整理代码 2021-07-17 02:02:53 +08:00
MrZ626
51768a5a27 限制最大自定义序列长度(2600) close #122 2021-07-17 01:48:36 +08:00
MrZ626
4a58967590 修改更新历史和build号 2021-07-17 01:44:01 +08:00
MrZ626
bc879ee8e2 修复粘贴序列检测到损坏时没有重置光标位置导致后续操作出现问题 close #89 2021-07-17 01:41:16 +08:00
MrZ626
d3046fa588 完全取消加载动画 2021-07-17 01:38:27 +08:00
MrZ626
ce8fefe9f8 再调整ZRS系统(启用偏移条件改为当前状态是否顶墙而不是空转后状态) 2021-07-17 01:38:21 +08:00
MrZ626
f7369ef4ae 修复SKIN模块加载完成后忘了删除loadAll函数 2021-07-17 00:25:50 +08:00
MrZ626
c0cfb97034 移除水印 2021-07-17 00:24:07 +08:00
MrZ626
c742e9fd31 新增ASC和ASCplus(添加180度踢墙,实验性)旋转系统 2021-07-17 00:00:17 +08:00
MrZ626
1d1522a9c4 再微调ZRS踢墙表(修改有偏移时只允许y<0踢为允许y<=0踢) 2021-07-16 23:01:07 +08:00
MrZ626
a9925b3f15 再微调ZRS踢墙表(添加±1,2) 2021-07-16 21:47:39 +08:00
MrZ626
2ea9a58a41 新BGM:here(用于生存第五难度) 2021-07-16 17:02:35 +08:00
MrZ626
9abf7bb45b 修复控制台print命令输入非文件报错 close #124 2021-07-16 16:54:48 +08:00
MrZ626
6afaf462f8 再微调ZRS踢墙表 2021-07-15 23:54:48 +08:00
MrZ626
b1ac913dd8 更新ZRS,修改O和X的旋转踢墙方向 2021-07-14 23:24:43 +08:00
MrZ626
4e5b16c0e2 更新ZRS,移动键顶墙才会增加额外偏移 2021-07-14 22:26:20 +08:00
MrZ626
56b2a41eee 增加滑条控件测试声音的间隔 2021-07-14 18:58:37 +08:00
MrZ626
8b32f29c2a 控制台的flag添加sudo密码 2021-07-14 18:56:54 +08:00
MrZ626
52ad2e2ddc 修正只有屏幕宽度异常时自动刷新窗口尺寸 2021-07-14 18:51:13 +08:00
MrZ626
2edd5542f8 整理代码 2021-07-14 17:35:33 +08:00
MrZ626
cb27f145a3 开启msaa(实验性),修改更新历史和版本名 2021-07-14 17:09:05 +08:00
MrZ626
44cbe58486 控制台新增sudo(su)命令 2021-07-14 16:19:56 +08:00
MrZ626
1c8844c3c4 选择系统新增ZRS(实验性) 2021-07-14 00:06:22 +08:00
MrZ626
6c864ea59a 修正c2sym旋转系统一个内部小问题 2021-07-13 23:06:57 +08:00
MrZ626
9818685856 整理代码 2021-07-13 22:26:10 +08:00
MrZ626
51e709acf6 修复地图上两个无尽模式每次启动都会消失 2021-07-13 22:25:50 +08:00
MrZ626
f826899f45 修改debug模式鼠标位置显示方式 2021-07-13 16:08:49 +08:00
MrZ626
b3f9aa3d28 声音设置界面添加静音按钮 2021-07-13 15:25:00 +08:00
MrZ626
d9c31f6661 修复转换弄反20G模式数据时可能报错 2021-07-13 01:22:22 +08:00
MrZ626
2af3f15997 修复das为0时预览动画不正确 2021-07-13 00:34:45 +08:00
MrZ626
701e4bbdbb 新增小亚语音包(立绘等待更新) 2021-07-13 00:29:16 +08:00
MrZ626
ce8e2597fe 修复存档转换时两个20G模式数据弄反,更新版本号至0.16.0 2021-07-11 17:05:16 +08:00
MrZ626
b185852271 不再自动转换0.15.0以前存档 2021-07-11 16:58:13 +08:00
MrZ626
7a2ac914df 修复20G不会禁用各种软降键 2021-07-11 16:35:49 +08:00
MrZ626
a0e3eb21c5 主菜单按esc可以返回intro 2021-07-11 15:14:02 +08:00
MrZ626
c9132b02a4 修复更新存档时两个master内部名弄反 2021-07-11 15:00:44 +08:00
MrZ626
0e81b0f8c8 bgm nil微调 2021-07-11 15:00:44 +08:00
MrZ626
de3bd91d4d 新增bgm:shift(用于生存后三个难度) 2021-07-11 15:00:17 +08:00
MrZ626
ad35dab32b 纠正???语言中报错信息和英文不一致 close #117 2021-07-10 23:43:34 +08:00
MrZ626
b650999f96 修复快速设置语言产生大量内存垃圾并在返回主菜单时卡顿 close #118 2021-07-10 23:38:12 +08:00
MrZ626
9c2974e4f0 修改更新历史 2021-07-10 21:49:58 +08:00
MrZ626
00859ee26b 房间版本开始使用独立版本号 2021-07-10 21:44:24 +08:00
MrZ626
89218c7529 修改强制b2b的死亡判定条件 2021-07-10 21:38:39 +08:00
MrZ626
53d94f1f51 新增100a竞速模式 2021-07-10 21:37:50 +08:00
MrZ626
332700fd64 整理代码,音乐室三个按钮改用图标 2021-07-10 20:49:58 +08:00
MrZ626
8e1dd048b5 微调模式参数模板格式 2021-07-10 18:38:25 +08:00
MrZ626
e9e6b25276 模式文档中env参数说明更详细了 2021-07-10 18:38:14 +08:00
MrZ626
ab6080767b 简化词典中部分玩家词条 2021-07-10 18:14:47 +08:00
MrZ626
87e27e8a4b 修复hold块不可用时显示没有变 2021-07-10 17:09:12 +08:00
MrZ626
3b56679a32 修复暂停后回放操作被打断 2021-07-10 16:46:52 +08:00
MrZ626
bbf46a0d6d 修复ultra模式ui问题 2021-07-10 16:14:58 +08:00
MrZ626
8622268445 修改更新历史和build号 2021-07-10 15:13:53 +08:00
MrZ626
201c20b56f 修复切换场景时部分按钮会闪烁一帧(调整主循环中模块update顺序) close #116 2021-07-10 15:12:22 +08:00
MrZ626
835430bf84 修改几个master模式的内部名称 2021-07-10 15:09:26 +08:00
MrZ626
4db12c500e 尝试修复一些关卡解锁相关问题 2021-07-10 14:44:54 +08:00
MrZ626
77b9809eaa 修改master-u背景配置,删除测试代码 2021-07-10 13:51:40 +08:00
MrZ626
e2f84ee25a ultra模式倒计时改为帧数 2021-07-10 12:31:46 +08:00
MrZ626
15f414f43d master-u模式新增500~1000,新BGM:Secret7th Remix(by 柒栎流星) 2021-07-10 12:29:21 +08:00
MrZ626
e060d99b02 修复主菜单的一些毛病 2021-07-10 03:12:12 +08:00
MrZ626
97ca282f8a 控制台新增resetall命令 2021-07-10 02:28:26 +08:00
MrZ626
a1980cf766 整理代码 2021-07-10 02:07:17 +08:00
MrZ626
82dc468868 修复debug模式未选中控件按f5报错和离开场景后部分控件不会失去焦点 2021-07-10 00:37:37 +08:00
MrZ626
5eb162718c 修改更新历史和版本名称 2021-07-09 23:34:38 +08:00
MrZ626
04b4ac00fc 修复trs中p和q进不去stsd洞 2021-07-09 23:29:18 +08:00
MrZ626
345223c159 修复IRS生效后不会自动松开旋转键 close #114 2021-07-09 23:20:18 +08:00
MrZ626
44adb2a018 调整zen模式后三个模式在地图的位置,微调更新版本代码 2021-07-09 22:34:47 +08:00
MrZ626
f4ef9a1612 整理代码,纠正回放控制按钮显示条件 2021-07-09 22:11:35 +08:00
MrZ626
9066c6428a 新主菜单bgm,调整Z-Day日期和音乐配置 2021-07-09 21:59:00 +08:00
MrZ626
6c45388172 录像回放时esc也可以暂停,暂停恢复不改变回放速度 2021-07-09 19:28:50 +08:00
MrZ626
c9265c640a 调整回放速度文本 2021-07-09 18:34:41 +08:00
MrZ626
5deb724f7d 修改更新历史和build号 2021-07-09 01:54:35 +08:00
MrZ626
fd21edd024 支持调整录像回放速度和逐帧播放 2021-07-09 01:54:22 +08:00
MrZ626
b1d5490e1b 整理代码 2021-07-09 01:32:28 +08:00
MrZ626
7248af35de 修复房间内准备按钮状态错误 2021-07-08 23:34:49 +08:00
MrZ626
601049ffe1 更新vince玩家词条 2021-07-08 23:25:23 +08:00
MrZ626
7ae418c597 grey的拼写改为gray 2021-07-08 21:31:48 +08:00
MrZ626
e29c3af8bb 回放模式下显示隐形的当前方块和ghost close #105 2021-07-08 21:19:32 +08:00
MrZ626
23f587165a 微调隐形模式地图图标尺寸 close #107 2021-07-08 21:01:17 +08:00
MrZ626
0e0b6db4a5 整理代码,回放时按住空格可以三倍速播放 2021-07-08 20:44:07 +08:00
MrZ626
7295179f5d 微调线框ghost样式 2021-07-08 18:16:53 +08:00
MrZ626
03dad89787 新增游戏内方块和场地的亮度参数调整 2021-07-08 03:58:26 +08:00
MrZ626
7b227181f2 修复键盘控制滑条或者选择器时报错 2021-07-08 03:58:25 +08:00
MrZ626
f3994316e3 整理代码 2021-07-08 03:58:25 +08:00
MrZ626
57792bd230 修复从回放菜单进入回放时还显示重开按钮并且重开键有用 2021-07-07 07:49:27 +08:00
MrZ626
09bdb4e52b 中文词典添加freesyle词条 2021-07-07 07:27:34 +08:00
MrZ626
5ceb59daae 模式地图支持按住ctrl或alt后方向键功能变为缩放 close #101 2021-07-06 21:05:24 +08:00
MrZ626
f3d8c6b98a TRS中T的踢墙表2→1(2→3)新增-1,-1(+1,-1) 2021-07-06 20:54:14 +08:00
MrZ626
82749e9e19 整理代码,修复非游戏状态下设置按钮可见性错误 2021-07-05 14:30:29 +08:00
MrZ626
6859d70ca7 修复退出暂停场景时会直接把当前游戏时间增加进当日游戏时间 2021-07-03 23:00:55 +08:00
MrZ626
34cfca88d7 修复镜头上移(和垃圾行上涨的下压高度)会导致目标消除线位置不正确 closed #97 2021-07-01 17:54:48 +08:00
MrZ626
5ccda32d63 调整中文词典中das词条的解释 2021-06-30 00:49:47 +08:00
MrZ626
5dfdfb8151 修复消除特效关闭后溅射特效不会显示 2021-06-29 22:41:02 +08:00
MrZ626
23b1692702 修复画面设置拉不到底 2021-06-29 22:38:22 +08:00
MrZ626
706fa901e2 整理代码,只在代码中使用的字符串由双引号改为单引号 2021-06-29 04:09:06 +08:00
MrZ626
1c553df53a ghost样式预览 close #95 2021-06-28 20:25:27 +08:00
MrZ626
f1416f46fc 简化点击特效 2021-06-28 19:56:41 +08:00
MrZ626
b988de13bb 微调暂停界面布局 2021-06-28 19:52:23 +08:00
MrZ626
f74f7b3814 调整游戏设置和音频设置页面排版 2021-06-28 19:52:07 +08:00
MrZ626
c406059177 修复录像回放会进入排行 2021-06-28 19:12:06 +08:00
MrZ626
1dcce5f3b2 可以正确加载录像里的mod(大概) 2021-06-28 19:07:48 +08:00
MrZ626
cb2f011b19 修复DOGC画布尺寸受限时报错 2021-06-28 16:25:53 +08:00
MrZ626
70871ee4fd 加载TEXTURE模块时强制重置坐标系尝试修复miniBlock材质变形问题 2021-06-28 16:16:46 +08:00
MrZ626
2f7647c5ba 修改更新历史和build号 2021-06-28 16:12:03 +08:00
MrZ626
f536173dea 减轻误硬降打断音量 2021-06-28 16:11:54 +08:00
MrZ626
9488dc61f9 兼容部分特殊存档格式 2021-06-28 16:06:33 +08:00
MrZ626
6f74595305 再次更新录像加载和转换流程 2021-06-28 15:44:50 +08:00
MrZ626
a1f32ca333 添加一些录像文件解析错误的保护 2021-06-28 15:23:09 +08:00
MrZ626
45ab91267f 修复录像播放结束时如果没有段位会报错 2021-06-28 13:36:43 +08:00
MrZ626
3472ccc73d 修改更新历史 2021-06-28 04:03:31 +08:00
MrZ626
a9789b1c21 攻击缓冲条中的攻击显示时间刻度 2021-06-28 04:03:30 +08:00
MrZ626
20095c01d1 微调点击特效粒子尺寸和分布 2021-06-28 04:03:30 +08:00
MrZ626
653b256253 可选六种阴影样式,默认贴图 2021-06-28 03:42:57 +08:00
MrZ626
a9a66bf21e 极简菜单开关放到屏幕外减少误触 2021-06-28 03:21:46 +08:00
MrZ626
2fd310baed 优化sysFX模块绘制性能,修改点击特效 2021-06-28 03:18:29 +08:00
MrZ626
ef94e1bf3a 修改更新历史和build号 2021-06-28 02:55:53 +08:00
MrZ626
fe91265f62 赞助列表添加一位 2021-06-28 02:55:47 +08:00
MrZ626
b8a9c42a3b 新BGM:Rectification(用于master-final的前500台) 2021-06-28 02:55:21 +08:00
MrZ626
b0ecb28b48 升级录像格式,完善录像回放菜单 2021-06-28 02:43:47 +08:00
MrZ626
6cb81b461b listBox:remove最后一个元素时会尝试自动将光标上移防止光标消失 2021-06-28 02:40:43 +08:00
MrZ626
9b44971de8 把dropcut加入录像需要记录的设置(之前忘了) 2021-06-27 20:24:26 +08:00
MrZ626
c8908f38fb 修改几个tip 2021-06-27 20:16:17 +08:00
MrZ626
d7c721ae5b 修改MES模块消息默认底色 2021-06-27 20:14:22 +08:00
MrZ626
4d3d00bc58 控制台移除warn和error命令,修改mes命令说明,修改crash命令效果 2021-06-27 19:01:10 +08:00
MrZ626
5eaeaaa79f 提前LANG.set时机,防止后续FILE模块尝试输出时报错 2021-06-27 14:41:47 +08:00
MrZ626
d77af59521 修复录像文件保存格式错误,多了个换行 2021-06-27 14:09:38 +08:00
MrZ626
b5093d19f4 修改更新历史和build号 2021-06-27 03:18:43 +08:00
MrZ626
ef14e8b38c 调整房间内准备状态文本颜色 2021-06-27 03:18:43 +08:00
MrZ626
0f3c234ca0 整理操作GAME变量的代码,新增录像回放菜单(需要后续测试) 2021-06-27 03:18:43 +08:00
MrZ626
563d820fbe 微调保存录像的流程 2021-06-27 03:18:43 +08:00
MrZ626
d15757dcc2 listBox控件新增pop和remove方法 2021-06-27 03:18:43 +08:00
MrZ626
9d28505140 ws模块添加发送非字符串信息的检测 2021-06-27 02:36:39 +08:00
MrZ626
ce91e75cd2 调整listBox的drawF参数顺序 2021-06-26 21:37:38 +08:00
MrZ626
4809d4193e 修复玩家退出房间时移除的键错误导致崩溃 2021-06-26 21:36:55 +08:00
MrZ_26
9ee310e73f Merge pull request #93 from Not-A-Normal-Robot/patch-1
Fix text inaccuracy in mod menu
2021-06-26 21:35:56 +08:00
Not-A-Normal-Robot
1380fa768c Fixed text inaccuracy in mod menu
![image](https://user-images.githubusercontent.com/76723917/123514347-d0c99680-d6bc-11eb-85dd-2ba90d1fcdf1.png)
0.15.4 made every mod cause the game to be unranked, so this should be changed to:
`Beware, the mods will cause your game to be unranked!`
2021-06-26 20:34:31 +07:00
MrZ626
0ea58e0858 整理代码,添加最新版本兼容 2021-06-26 14:20:48 +08:00
MrZ626
d1c1631bae 尝试防止一个找不到用户对象的报错并展示uid信息 2021-06-26 02:58:37 +08:00
MrZ626
ef2b845837 微调房间列表ui 2021-06-26 02:56:56 +08:00
MrZ626
e252364c59 添加更新日志,修改版本号 2021-06-26 02:37:50 +08:00
MrZ626
bc14c6f625 大爆炸结束方式改为自动,删除旧排行数据 2021-06-26 02:36:56 +08:00
MrZ626
bcc1b25023 调整主菜单按钮和对应图标(移除返回,添加录像回放)(回放暂未实现,只是添加入口) 2021-06-26 02:24:12 +08:00
MrZ626
5f609f41a5 准备颜色改为天蓝色,连接成功由变色改为半透明填充 2021-06-26 02:07:26 +08:00
MrZ626
38589fbebe 调整ws收到警告/错误消息后输出的提醒消息格式 2021-06-26 01:43:36 +08:00
MrZ626
356316aaa3 MES.new会根据部分基础消息类型添加背景色 2021-06-26 01:42:18 +08:00
MrZ626
b554409b32 创建画布失败后会降低尺寸上限然后重试而不是报错 2021-06-26 01:35:20 +08:00
MrZ626
076d854f11 微调文本框控件滚动条件,微调联网游戏按钮行为,微调控制台输出空行的时机 2021-06-25 23:41:06 +08:00
MrZ626
14852fa3e9 修改更新历史 2021-06-25 21:03:28 +08:00
MrZ626
42e2823e28 允许任何人开大房间,整理代码 2021-06-25 21:02:19 +08:00
MrZ626
535e78a8b3 移除无效的debug功能键,整理代码 2021-06-25 20:53:47 +08:00
MrZ626
c8480a17e9 整理代码,再次优化主菜单联网游戏按钮交互,连接过程中不允许切去其他场景 2021-06-25 20:20:55 +08:00
MrZ626
6989158216 修改更新历史 2021-06-25 16:32:12 +08:00
MrZ626
7fc3d13c99 升级几个控件的scroll和drag方法,按键响应逻辑更严谨 2021-06-25 16:31:42 +08:00
MrZ626
7ce56b8913 中文词典添加一个关于tspin学习门槛的词条 2021-06-25 15:19:12 +08:00
MrZ626
a0980138f9 所有mod都会让成绩无效,等待重做 close #90 2021-06-25 03:44:54 +08:00
MrZ626
16e01e510e 整理代码 2021-06-25 03:42:41 +08:00
MrZ626
ee628778cf 修复自定义模式进入消除模式后不再恢复正常无尽模式 close #91 2021-06-25 03:39:42 +08:00
MrZ626
36a30a6318 修改房间准备状态变量修改条件,减少出现问题状态的可能性 2021-06-24 14:26:14 +08:00
MrZ626
096f162ea6 修复WS模块可以在连接成功之前read出数据导致连接流程被打断 2021-06-24 12:54:58 +08:00
MrZ626
22c213b10f 整理代码,修复拼图模式胜利后文字不会消失 2021-06-24 11:29:17 +08:00
MrZ626
ba66610a01 修改build号和更新历史 2021-06-24 04:41:46 +08:00
MrZ626
ab4a055194 更易读的进房版本检测 2021-06-24 04:41:20 +08:00
MrZ626
2ce2f91414 新增误硬降打断延迟机制 2021-06-24 03:13:57 +08:00
MrZ626
0f1c8c7b2f 微调一点ui问题 2021-06-23 05:58:27 +08:00
MrZ626
8adcd4b8a9 修改build号和更新历史 2021-06-23 05:53:17 +08:00
MrZ626
db5a8594fd 移除20G极限难度400~500背景 close #86 2021-06-23 05:52:11 +08:00
MrZ626
5238d855b4 修复任务编辑(潜在)和序列编辑粘贴不当格式数据会有污染信息影响数据导致后续错误 closed #89 2021-06-23 05:49:55 +08:00
MrZ626
6c2cbe5f20 删除测试代码,升级textBox控件,改进listBox控件,整理代码 2021-06-23 05:49:54 +08:00
MrZ626
27ce516dd9 科研模式修改目标后评级代码未更新 2021-06-22 20:39:47 +08:00
MrZ626
981479ca5f hold被禁用时虚拟按键不消失 2021-06-22 20:39:19 +08:00
MrZ626
70a41855d1 控件更新时改回先刷新hide状态再选择是否update 2021-06-22 12:28:15 +08:00
MrZ626
3571ef404c 新增列表框控件,并用于房间列表,整理代码 2021-06-22 03:00:10 +08:00
MrZ626
86ee26381c 调整倒计时数字样式,微调颜色 2021-06-21 11:49:31 +08:00
MrZ626
198b18ec89 修复开启3d方块时消行特效也会有两个叠在一起 2021-06-21 10:06:18 +08:00
MrZ_26
18ff09befa Merge pull request #85 from 26F-Studio/user670-patch-20210618-readme
Make the readme Github/Gitee-compatible
2021-06-21 10:05:41 +08:00
MrZ626
bd48c266b8 修正tip中对魔方名字的错误拼写 close #88 2021-06-20 00:02:58 +08:00
MrZ626
cf410dfbdd 修改更新历史 2021-06-19 21:57:10 +08:00
MrZ626
4afac2a2fb 添加一位赞助者 2021-06-19 21:57:00 +08:00
MrZ626
d96f45c3b3 优化ws模块性能(函数local化) 2021-06-19 21:41:58 +08:00
MrZ626
e381f66767 整理代码,移除多余的保存成功提示 2021-06-19 20:46:23 +08:00
MrZ626
d0b9cdc503 修复修改ws机制之后不能完全断开导致重复连接 2021-06-19 20:27:06 +08:00
MrZ626
e846222ace 简化MES.traceback 2021-06-19 20:17:10 +08:00
MrZ626
b3e9b128b6 修复c4w模式一直响警报的问题 2021-06-19 20:15:24 +08:00
MrZ626
0708d05ec9 同时允许进入0.15.2/3/4版本的房间 2021-06-19 14:46:34 +08:00
MrZ626
f4eda19684 修改更新日志 2021-06-19 14:42:33 +08:00
MrZ626
b0c71e0f6c 文件保存或json编解码失败时会有代码位置指示消息 2021-06-19 14:24:21 +08:00
MrZ626
3b675ad8ed ws没有连接上时不再会向队列里push消息 2021-06-19 14:06:39 +08:00
MrZ626
4c95f6bfbc 文件保存时一般不再弹出保存成功的消息 2021-06-19 14:05:59 +08:00
MrZ626
98715e4579 修复ws被切断时消息解析错误 2021-06-19 13:07:30 +08:00
MrZ626
89af52b14b 修复1/30的概率死亡后濒死音效错误播放 2021-06-18 15:18:32 +08:00
user670
1b4c1b8d7f Make the readme Github/Gitee-compatible
- The formatted text replaced with a # heading
- removed other useless font tags
- Added https to the link so that it's clickable
2021-06-18 13:29:42 +08:00
MrZ626
aea6840263 整理代码 2021-06-18 13:10:16 +08:00
MrZ626
cc33d04f32 更新readme 2021-06-18 13:10:08 +08:00
MrZ626
e75ab93838 调整部分小程序说明和进入方法 2021-06-18 12:46:46 +08:00
scdhh
85f3cb4d19 Create README.md
有了,但似乎和没有一样(
2021-06-18 12:38:41 +08:00
MrZ626
dab880bc82 修复WS.update会往triggerChannel无条件一直push导致无意义消息数量过多 2021-06-18 10:34:10 +08:00
MrZ626
004bb0cfca 自定义游戏重置功能会重置场地/序列/任务了 2021-06-18 09:58:51 +08:00
MrZ626
ca0ca8fd98 修改更新历史和版本号,整理代码 2021-06-18 02:15:14 +08:00
MrZ626
660f027c01 房间列表ui升级,支持输入密码 2021-06-18 02:00:39 +08:00
MrZ626
a69648274c 修改自定义游戏默认背景和自定义房间默认bgm 2021-06-18 02:00:32 +08:00
MrZ626
eee820bc73 微调输入框边框样式,控件被隐藏时会自动失去焦点 2021-06-18 01:45:45 +08:00
MrZ626
4e9fbf6764 修正服务器传来警告/错误信息时弹出消息的奇怪格式 2021-06-17 23:16:55 +08:00
MrZ626
f78856c58e 自定义房间可以设置密码(暂时不可加入) 2021-06-17 22:35:15 +08:00
MrZ626
e5a3b6c6ac 控件模块/场景代码更好地响应系统长按 2021-06-17 22:17:35 +08:00
MrZ626
37a3e36bd5 DOGC模块不会创建超过系统限制大小的画布 2021-06-17 12:46:58 +08:00
MrZ626
99eeeb915a 小程序tap不再认为鼠标左右键为同一个键 2021-06-17 12:13:46 +08:00
MrZ626
00f6d46f71 简化更新历史 2021-06-16 21:19:50 +08:00
MrZ626
41660e4074 整理代码,修改更新历史 2021-06-16 16:47:56 +08:00
MrZ626
88367fc7a6 修正NX模组不会让成绩无效 2021-06-16 16:10:21 +08:00
MrZ626
5361235234 添加一位赞助者,修改游戏内赞助人列表格式 2021-06-16 02:21:00 +08:00
MrZ626
82634a32a5 修改更新历史和build号 2021-06-15 22:53:54 +08:00
MrZ626
cc89c937dc 修复非极简/非任务判负并未完全判负 2021-06-15 22:51:52 +08:00
MrZ626
e0997f0ecb 移除部分用不到的文本,注册请求发送后按钮会消失并弹出消息,整理代码 2021-06-15 18:07:52 +08:00
MrZ626
8127a999b3 15p场景颜色滑条改为选择器 2021-06-15 18:07:37 +08:00
MrZ626
490bebf632 修复加载不出的错误格式头像文件会导致崩溃 2021-06-15 00:01:28 +08:00
MrZ626
82040d0525 修复复活和联网玩家进入挂起状态检测顺序错误 2021-06-14 22:38:07 +08:00
MrZ626
eee6160565 修复ws连接失败时不能正确显示消息 2021-06-14 22:24:34 +08:00
MrZ626
8daae21a76 取消语言选择界面按钮内部名 2021-06-14 21:57:25 +08:00
MrZ626
bb722d4a2b 控件模块允许不提供控件名,默认一个下划线 2021-06-14 21:57:12 +08:00
MrZ626
160be9048c 微调MES信息绘制位置 2021-06-14 21:55:06 +08:00
MrZ626
46c2ed8332 修改更新历史和build号 2021-06-14 21:41:52 +08:00
MrZ626
101c8a2994 MES模块支持显示多行信息与小比例显示 2021-06-14 20:42:34 +08:00
MrZ626
e7bfc8335e MES模块添加公告图标 2021-06-14 20:42:10 +08:00
MrZ626
c17865d777 MES模块增加更多图标,调整使用方法 2021-06-14 20:42:07 +08:00
MrZ_26
28cf3d878f Merge pull request #80 from 26F-Studio/user670-patch-20210613-spanish-lang-code-fix
Change spanish language's file name to lang_es
2021-06-13 23:09:22 +08:00
MrZ626
67d6d4a3ee 调整控制台help命令输出,增加三条新的测试MES命令 2021-06-13 22:55:32 +08:00
MrZ626
369891ba54 MES消息增加error图标,减淡边框 2021-06-13 22:02:29 +08:00
user670
18ccd00083 Change Spanish language file name to lang_es 2021-06-13 21:54:26 +08:00
user670
ce36d5d43c Merge branch 'main' of https://github.com/26F-Studio/Techmino into main 2021-06-13 21:50:47 +08:00
MrZ626
0ee460b679 MES模块支持带内部图标(目前只有warn) 2021-06-13 21:08:01 +08:00
MrZ626
e77f415f38 调整MES模块显示比例 2021-06-13 19:40:32 +08:00
MrZ_26
6d78bd2b42 Merge pull request #79 from MrFaq2018/main
Update lang_sp.lua
2021-06-13 12:06:42 +08:00
MrFaq2018
39d91a513b Update lang_sp.lua 2021-06-12 19:08:50 -03:00
MrZ626
7075d7d5b2 暂时使用未完成的MES模块替换LOG模块 2021-06-13 02:06:47 +08:00
MrZ626
17e67c674b 修复第一次开始游戏会触发保存 2021-06-13 02:05:40 +08:00
MrZ626
e90a12418d 再次修复3d场地渲染shader透明度问题 2021-06-13 01:51:54 +08:00
MrZ626
ec4697c45e 修复master-ex结算问题 2021-06-13 01:50:41 +08:00
MrZ626
11862e6fba 濒死警告不再遮挡屏幕上下边缘 2021-06-11 23:38:37 +08:00
MrZ626
0e50c54754 修复uttt光标问题 2021-06-11 00:09:32 +08:00
MrZ626
90943f207a 修复修改小程序目录结构后控制台不能访问小程序 2021-06-10 23:53:17 +08:00
MrZ626
a6c62fb6ed LOG模块时间单位改为秒 2021-06-10 17:44:06 +08:00
MrZ626
cde97fdd3f 修改SCR模块几个middle坐标系对象名 2021-06-10 16:01:15 +08:00
MrZ626
3cfa230d2b 调整远程玩家加速速率,远程玩家时间显示暂时改为运行帧数/60 2021-06-09 14:53:56 +08:00
MrZ626
5b57c84034 微调开房参数ui,修复esc键不能正确返回的bug 2021-06-09 12:44:14 +08:00
MrZ626
6bd4895255 整理代码 2021-06-09 09:02:11 +08:00
MrZ626
21834a357d 再次将一些遗漏的love2d称呼修正为LÖVE 2021-06-09 00:14:20 +08:00
MrZ626
a51a95339b 修复软降das设为0时需要按住两帧(应为一帧)才能触发0arr 2021-06-08 21:51:07 +08:00
MrZ626
67f5ed49ec 永久解决按输入框焦点和回车键的交互问题 2021-06-08 21:34:07 +08:00
user670
4d6bf2fb4b Merge branch 'main' of https://github.com/26F-Studio/Techmino into main 2021-06-08 21:28:36 +08:00
MrZ626
80e95f3e27 修改更新历史 2021-06-08 21:11:19 +08:00
MrZ626
7e68ea5fb6 调整存档管理的文本和按钮布局 2021-06-08 21:07:05 +08:00
MrZ626
fecfeefb5b 数据管理菜单添加存/读云端数据按钮 2021-06-08 17:59:11 +08:00
MrZ626
bca0410e28 几个绘制对象整合进TEXTURE模块,调整问号样式,简洁主菜单使用更多图标 2021-06-08 17:42:57 +08:00
MrZ626
67aea3b5ce 选择语言时会显示一次选择的语言名称 2021-06-08 15:14:45 +08:00
MrZ626
94e3f15ee7 移除省流模式 2021-06-08 15:04:15 +08:00
MrZ626
6519e8445e 优化GAME.prevBG的使用,同时应用于联网游戏场景,修复从设置返回后背景变化问题 2021-06-08 12:55:14 +08:00
MrZ626
4ae14b6c73 暂时先截断ws被断开时消息中前两字节的close code防止崩溃 2021-06-08 07:19:18 +08:00
MrZ626
4752c5ad2d LOG.print会尝试捕获非法utf8错误 2021-06-08 06:53:50 +08:00
MrZ626
b3f6e29a36 没有权限开大房有更明显的提示 2021-06-08 06:38:40 +08:00
MrZ626
e5ea8098df 房间没有描述时不会报错 2021-06-08 06:19:59 +08:00
MrZ626
83f037b704 整理代码,test场景可以退出了 2021-06-08 06:18:28 +08:00
MrZ626
6428cb39a5 修改房间参数ui微调 2021-06-08 06:18:18 +08:00
MrZ626
1bc19d6cf7 修复一些自定义房间问题,添加房间描述 2021-06-08 06:06:34 +08:00
MrZ626
0af32f12e3 新增自定义房间参数(需要测试)(暂时只能创建时选择) 2021-06-08 05:20:31 +08:00
MrZ626
24bd08a1b2 房间内消息提示标记时间加长,准备按钮缩短一点 2021-06-07 19:26:15 +08:00
MrZ626
53fb02b4db 整理代码 2021-06-07 19:00:34 +08:00
MrZ626
a49d71f097 简化接收网络消息的task函数,不再永久停留于任务队列中 2021-06-07 12:45:40 +08:00
MrZ626
c78e2c0fbf 调整服务器管理命令名 2021-06-07 12:01:28 +08:00
MrZ626
66c9968932 修改更新历史 2021-06-07 02:28:57 +08:00
MrZ626
39a5a1e637 重构控制台的commands结构 2021-06-07 02:27:52 +08:00
MrZ626
0b83fd839a 滚轮也可以控制屏幕滚动 2021-06-07 02:12:15 +08:00
MrZ626
30399cecaf 缩短英文无尽pc挑战模式标题文本 2021-06-07 00:38:57 +08:00
MrZ626
d3170ab219 云存档功能完成,暂时只能通过控制台使用 2021-06-07 00:17:05 +08:00
MrZ626
2e5f943b79 修复数据保存到统计的时机错误 2021-06-07 00:17:05 +08:00
MrZ626
a9ab373f0b 调整一些文本 2021-06-07 00:17:05 +08:00
MrZ626
bef232376b 新增ws-manage用于简单服务器管理 2021-06-07 00:17:04 +08:00
MrZ626
628365cb49 string/table扩展模块新增几个方法用于数据打包/解包 2021-06-07 00:17:04 +08:00
MrZ626
f9ed93641c 修改ws模块的debug开关变量名 2021-06-07 00:17:04 +08:00
MrZ626
0a63bea195 修复开启3D场地后shader覆盖了贴图透明度(之前变量名打错了) 2021-06-07 00:15:31 +08:00
MrZ626
ef8bf5fc3e 整理代码 2021-06-07 00:15:31 +08:00
MrZ626
b7b630fc81 移除staff名单里赞助人文本的颜色,添加一人 2021-06-07 00:15:31 +08:00
MrZ626
d784c33fe8 添加一个节日 2021-06-07 00:15:30 +08:00
MrZ626
ec9f8ba46f 整理代码 2021-06-06 04:15:25 +08:00
MrZ626
97a351cd92 修复开启3D场地后shader覆盖了贴图透明度 2021-06-06 00:59:55 +08:00
MrZ626
15de6ad437 整理代码 2021-06-06 00:59:02 +08:00
MrZ626
5ef18545f8 修正部分英文文本,删除部分不需要的文本项,称呼love2d为LÖVE 2021-06-05 23:44:14 +08:00
MrZ626
2cdc62f4a2 修复获取用户名的一个小问题,移除测试用代码 2021-06-05 23:31:45 +08:00
MrZ_26
1757ba149c Merge pull request #74 from MattMayuga/main
Update English language
2021-06-05 23:30:58 +08:00
MrZ626
4ae816e9a6 微调统计菜单ui 2021-06-05 17:51:04 +08:00
MrZ626
918acf2b58 删除游戏结束后的排名菜单,直接在玩家框内显示数据,详细信息也会显示motto 2021-06-05 17:37:04 +08:00
MrZ626
77a5774965 更新T127个人词条中40Lpb 2021-06-05 15:39:42 +08:00
MrZ626
8185e36839 联网玩家模块升级,顺序将按照游戏排名变化 2021-06-05 14:31:17 +08:00
MrZ626
6d937d91d2 新BGM:Moonbeam(用于pc挑战最后两个难度) 2021-06-05 03:34:01 +08:00
MrZ626
d2b171427a 提高无摩擦模式评级要求 2021-06-04 18:22:09 +08:00
MrZ626
acd3684ad4 更新tips里的世界纪录 2021-06-04 12:50:28 +08:00
MrZ626
18170b1793 修改更新历史和版本号 2021-06-04 03:00:08 +08:00
MrZ626
6644e62887 对战房间添加显示排名功能 2021-06-04 02:45:25 +08:00
MrZ626
94d769c01c ws-app支持接收显示服务器广播信息 2021-06-04 00:00:24 +08:00
MattMayuga
228f7723e1 English updated 2021-06-03 19:36:58 +08:00
MrZ626
69b47c66b4 整理代码 2021-06-03 10:52:51 +08:00
MrZ626
77b6e14e7f 词典新增RPM词条 2021-06-03 10:19:16 +08:00
MrZ626
6bae8f1fa4 修正main的开头说明 2021-06-03 00:24:38 +08:00
MrZ626
967b56db58 增加震动档位数,加大上限 2021-06-02 09:14:11 +08:00
MrZ626
330cb313e7 修复联网对战房间内新消息提示器 2021-06-02 08:51:10 +08:00
MrZ626
83aac737c7 服务器规范排名数据,不再手动过滤 2021-06-01 22:06:54 +08:00
MrZ626
cb3ad51357 pc判定中“场地为空”的条件改为方块所在高度为1 2021-06-01 22:03:31 +08:00
MrZ626
1bb945e9c7 修复声音设置中cv控件值不同步 2021-06-01 17:05:52 +08:00
MrZ626
e4ff198b27 修改更新历史,更新build号 2021-06-01 14:39:55 +08:00
MrZ626
762a2a907e 新增无摩擦模式(隐藏,入口位于设置语音处立绘) 2021-06-01 14:34:04 +08:00
MrZ626
cd00b2f1cd 简化staff菜单键盘进隐藏模式操作 2021-06-01 14:33:00 +08:00
MrZ626
ec62da93a4 控制台直接进入特定模式动画变短 2021-06-01 14:32:43 +08:00
MrZ626
6518e581b6 修复加载没有翻译名称的模式时报错 2021-06-01 14:27:50 +08:00
MrZ626
1c2c16e50d 调整自定义游戏场地高度上限取值范围 2021-06-01 14:21:44 +08:00
MrZ626
68f105141a 联网对战排名信息存到NET中,等待添加ui 2021-06-01 00:22:12 +08:00
MrZ626
197dd0f724 微调视频设置ui 2021-05-31 22:22:25 +08:00
MrZ626
996a7d5ef4 赞助名单添加一人,修改一个id 2021-05-31 22:22:16 +08:00
MrZ626
2197af2799 隐型模式背景的模电变暗,并且会随着场地晃动运动 2021-05-31 03:07:10 +08:00
MrZ626
2b05efb0ff 整理代码,语言选择界面按钮有颜色了 2021-05-30 17:23:42 +08:00
MrZ626
57f67749dc 修正屏幕左上角信息显示比例 2021-05-30 16:55:13 +08:00
MrZ626
25ad789e61 console添加切换服务器的命令 2021-05-30 16:21:03 +08:00
MrZ626
59ef90e120 取消NET.connected变量 2021-05-30 16:20:49 +08:00
MrZ626
8ee2e89cc5 更长的尝试连接ws时间,调整wsconn系列函数对外超时逻辑 2021-05-30 15:49:05 +08:00
MrZ626
d5736a5b08 ws模块支持设定连接超时时间 2021-05-30 15:46:29 +08:00
MrZ626
32a7035a90 修复几处ui小问题 2021-05-30 15:36:15 +08:00
MrZ626
9e61505205 升级SCR模块,整理大量坐标系变换代码 2021-05-30 12:07:08 +08:00
MrZ_26
51d2f43229 Merge pull request #71 from 26F-Studio/user670-dict-en-20210530
Update dict_en.lua
2021-05-30 12:05:48 +08:00
user670
454755083c Update dict_en.lua 2021-05-30 10:34:21 +08:00
MrZ626
0b43a01976 修复对战房间内退出设置界面会尝试连接ws-stream的问题,整理代码 2021-05-29 19:56:50 +08:00
MrZ626
4fda9d8ef3 整理代码,更换一个更方便的隐藏水印快捷键 2021-05-29 19:56:09 +08:00
MrZ626
34fc38961c 修复手机端滚动控件距离问题,升级SCR模块,增加几个方便的成员变量 2021-05-29 18:41:54 +08:00
MrZ626
c55f4d3d62 update ci 2021-05-29 16:54:27 +08:00
MrZ626
aec53318bf 加载的嗡嗡音效改为只在到点亮的楼层播放 2021-05-29 16:38:05 +08:00
MrZ626
7a74b9bbf7 整理代码,修改master-ex评级名字 2021-05-29 16:37:33 +08:00
MrZ626
94597a7474 Merge remote-tracking branch 'tech/ci' into main 2021-05-29 14:31:22 +08:00
MrZ626
8996ae40d7 整理代码,常驻版本号信息会随着屏幕尺寸变化而变化 2021-05-29 14:29:07 +08:00
MrZ626
00a3320b72 缩小可滚动页面箭头尺寸 2021-05-29 14:15:20 +08:00
flaribbit
e65932b806 fix apk sign 2021-05-29 10:43:44 +08:00
MrZ626
d981a2ae4d 整理未来计划 2021-05-29 04:51:04 +08:00
MrZ626
855d2164c5 整理代码,修复模式排行榜文字没有对齐 2021-05-29 01:26:07 +08:00
flaribbit
16f85bf2ab sign android app 2021-05-29 00:34:55 +08:00
flaribbit
489e6f3027 add CI for windows 2021-05-29 00:02:25 +08:00
flaribbit
42b7b1c9e4 add CI for linux (test) 2021-05-28 23:56:32 +08:00
flaribbit
ae03346bb7 add CI for android (test) 2021-05-28 23:33:50 +08:00
MrZ626
cf49685406 添加自动打包用build号 2021-05-28 23:14:08 +08:00
MrZ626
8f92fb5ea5 调整中文tip 2021-05-28 20:16:21 +08:00
MrZ626
6950be53a0 修改版本信息和更新历史 2021-05-28 01:43:59 +08:00
MrZ626
f3ec154cb1 取消对0.13.2之前版本的存档转换支持 2021-05-28 01:24:15 +08:00
MrZ626
c25f2f7cb6 文件模块新增两个删除文件的方法 2021-05-28 01:23:37 +08:00
MrZ626
6ef7db7ddf 版本信息改为显示在整个屏幕的底边 2021-05-28 00:40:27 +08:00
MrZ626
7f563df71c 更换主菜单的关于图标,调整返回图标尺寸 2021-05-28 00:40:07 +08:00
MrZ626
1f1d69d484 改写控件滚动相关代码,解决控件颜色偏差和非标准屏幕尺寸未定义行为 2021-05-28 00:22:17 +08:00
MrZ626
7079061f22 合并自定义游戏场景和自定义-高级场景,修改场景模块指定滚动距离的变量名 2021-05-27 21:19:04 +08:00
MrZ626
6a30651cc5 自定义模式默认参数增加垃圾行缓冲速度设定 2021-05-27 21:19:03 +08:00
MrZ626
f183686463 整理代码 2021-05-27 21:19:03 +08:00
MrZ626
d4fd2cd22f 为了不再需要控件模块统一添加back按钮文本,返回按钮统一使用图标;含义接近"更多"按钮也改用图标 2021-05-27 21:19:03 +08:00
MrZ626
5adda6adaa 控件可滚动时接近上下边缘控件会淡出 2021-05-27 21:19:03 +08:00
MrZ626
dc2abfe043 修复pc练习模式可以在场地未出现时落块 2021-05-27 10:28:36 +08:00
MrZ626
4f865374c5 整理代码,调整加载中音效 2021-05-27 10:22:07 +08:00
MrZ626
a5a7cc6a9b 屏幕可滚动时屏幕边缘会显示两个箭头提示 2021-05-27 10:20:41 +08:00
MrZ626
9f3550adbc 整理代码,修复控件模块一处bug 2021-05-27 10:07:46 +08:00
MrZ626
fecb292e9b 修复高dpi拖动屏幕时操作距离比例不正确 2021-05-27 02:20:35 +08:00
MrZ626
a0a959e901 使用滚动控件功能整理设置界面 2021-05-27 02:14:30 +08:00
MrZ626
23c250d44a 控件支持整页上下滚动 2021-05-27 01:50:02 +08:00
MrZ626
cd7156d65b 声音设置菜单ui调整,字都在屏幕里了 2021-05-27 01:03:50 +08:00
MrZ626
5c198ab916 文本框控件清空标记不再容易歧义 2021-05-27 00:06:37 +08:00
MrZ626
b07f97097f 降低所有背景的亮度,优化部分背景性能 2021-05-26 22:14:57 +08:00
MrZ626
34886ca643 排位战菜单(只是菜单,没有功能) 2021-05-26 20:50:39 +08:00
MrZ626
276a37361e aDraw和DOGC模块新增命令 2021-05-26 19:30:10 +08:00
MrZ626
8d37948cec 整理代码 2021-05-26 18:33:28 +08:00
MrZ626
e3f312252b 修复节日主题计算表达式漏括号 2021-05-26 15:46:37 +08:00
MrZ626
0f3dd61249 整理代码 2021-05-25 15:55:10 +08:00
MrZ626
58e5118d45 整理主循环代码,略微提升性能 2021-05-25 15:31:06 +08:00
MrZ626
6fa4cf17c7 修复fan背景坐标错误,整理代码提升性能 2021-05-25 14:51:16 +08:00
MrZ626
3d13c8ff2a 整理代码 2021-05-25 14:14:05 +08:00
MrZ626
543e2ba093 修改音乐室中一些音乐的作者标记 2021-05-25 01:11:10 +08:00
MrZ626
30297385af 清除自定义游戏的老版本残留无用代码,移除bagLen变量,直接用bagLine保存包间隔块数 2021-05-25 01:10:39 +08:00
MrZ626
37fb89bae0 增加几条中文tip,更新词典中MrZ词条 2021-05-24 22:06:04 +08:00
MrZ626
798b3acb89 暂时移除initSkip功能 2021-05-24 10:07:10 +08:00
MrZ626
57868b700b 重制主菜单bgm,更换marathon-bfmax的bgm 2021-05-24 10:07:10 +08:00
MrZ626
3100f31a62 控制台添加一个移除设置项的命令 2021-05-24 10:07:10 +08:00
MrZ626
9c4ab537be 修复不能正确粘贴序列的问题 2021-05-24 10:07:10 +08:00
MrZ626
0590de3f14 修复音乐super7th的循环问题并减小低音部分音量 2021-05-24 10:07:10 +08:00
MrZ626
d3bcb19c16 添加几条吃键相关的tip,降低灰字yygq系列tip浓度 2021-05-22 19:42:44 +08:00
MrZ626
ed42ea0b57 水印说明改为繁体 2021-05-22 15:26:23 +08:00
MrZ626
1133d256ee 观战结束后保留观战状态,整理代码 2021-05-22 07:31:01 +08:00
MrZ626
9df16b2999 修复进入房间时其他玩家的准备状态显示不正确 2021-05-21 19:43:19 +08:00
MrZ626
0f6d8ace1c 整理代码,微调房间内玩家布局 2021-05-21 18:12:08 +08:00
MrZ626
60e0222146 微调关于页面的文本 2021-05-21 12:05:23 +08:00
MrZ626
591fa94632 新BGM:Memory(用于ultra) 2021-05-21 11:26:15 +08:00
MrZ626
152aa0406e 整理代码,部分只用到一次的DOGC移出TEXTURE模块 2021-05-21 11:18:23 +08:00
MrZ626
fa0dc1f946 更新版本号,修改更新历史 2021-05-20 22:45:01 +08:00
MrZ626
8f860b21a8 优化开局倒计时画面效果 2021-05-20 22:12:10 +08:00
MrZ626
2a5105a49e 整理老旧自定义-消除模式代码,修复左侧消息显示问题 2021-05-20 22:09:24 +08:00
MrZ626
0fa9f85a8d 优化spike指示器绘制代码 2021-05-20 20:56:59 +08:00
MrZ626
202117a60e 垃圾行缓冲警告添加震动效果 2021-05-20 20:12:22 +08:00
MrZ626
35c7935f9c spike指示器显示优化 2021-05-20 15:48:28 +08:00
MrZ626
d953d623a2 微调联网房间内准备前ui,修改键盘准备/观战快捷键 2021-05-20 14:35:55 +08:00
MrZ626
4ddccd7211 混战模式和联网对战允许开局跳块 2021-05-20 14:21:11 +08:00
MrZ626
4a2d13c6d7 允许开局跳过若干next时,倒计时数字颜色和动画样式略有不同 2021-05-20 14:21:09 +08:00
MrZ626
c92b4c1863 修复手机端词典里的官网链接点不开 2021-05-20 13:34:15 +08:00
MrZ626
fb736c5a7a 调整模块加载顺序,修复一处cc库相关的报错 2021-05-20 13:29:18 +08:00
MrZ626
9046a0a7c8 整理版本更新代码,临时改成每次启动刷新所有lib文件 2021-05-20 12:27:08 +08:00
MrZ626
4173441d3c 修改更新历史 2021-05-20 00:24:48 +08:00
MrZ626
b5c3af05d8 整理代码 2021-05-20 00:04:12 +08:00
MrZ626
6fa9aa30fa 新增虚拟按键样式设置 2021-05-20 00:02:37 +08:00
MrZ626
41ce44fc0e 修复手机端文本框响应逻辑错误 2021-05-19 21:32:47 +08:00
MrZ626
59848cd559 尝试修复手机端文本框响应逻辑错误 2021-05-19 18:12:09 +08:00
MrZ626
092c944d27 整理代码 2021-05-19 18:12:09 +08:00
MrZ626
8ec051f523 添加一些tip 2021-05-19 16:15:56 +08:00
MrZ626
22cc708a65 赞助名单添加一位 2021-05-19 16:15:56 +08:00
MrZ626
4e577a01ae 删除一处测试代码,更新版本号,修改更新历史 2021-05-19 02:12:24 +08:00
MrZ626
5b43ff8c45 联网推进(观战功能测试) 2021-05-19 02:08:29 +08:00
MrZ626
d07075ca9c 联网推进(微调房间内交互,观战模式不再尝试发送录像流) 2021-05-18 17:39:00 +08:00
MrZ626
cd49507a2b 联网推进(增加观战相关代码) 2021-05-18 17:16:58 +08:00
MrZ626
00464f1e80 整理代码 2021-05-18 15:44:01 +08:00
MrZ626
6ec902e618 适当上移next和hold栏 2021-05-18 11:52:06 +08:00
MrZ626
30e276b132 新的对战房间数据结构,整理相关内容 2021-05-18 03:13:53 +08:00
MrZ626
b8597d1518 适配新版玩家连接状态修改方式 2021-05-18 01:45:28 +08:00
MrZ626
5543f29e4f 跟进更新历史 2021-05-18 01:12:40 +08:00
MrZ626
dc67239382 词典添加spike词条 2021-05-18 01:12:25 +08:00
MrZ626
2a571bbb97 网战录像流强行将每段数据长度补足到3的倍数保证base64后的数据不会被等号填充 2021-05-18 01:04:13 +08:00
MrZ626
2824bef04a 网战不再生成没连接成功的玩家对象 2021-05-18 00:59:41 +08:00
MrZ626
8fc7ebdab7 移除next和hold栏上的文本 2021-05-17 22:32:59 +08:00
MrZ626
793d6780f3 更新虚拟按键样式,略微优化性能 2021-05-17 22:32:59 +08:00
MrZ626
605561148b 修复未登录时游戏启动就进登录菜单 2021-05-17 22:29:56 +08:00
MrZ626
54daef0cd9 修复控件系统inputBox焦点问题 2021-05-17 22:29:56 +08:00
MrZ626
ac0ff16537 版本信息添加short字段,上报房间版本格式从code改为short,微调房间列表界面ui 2021-05-17 22:29:56 +08:00
MrZ626
e44053446a 更新ws连接服务器用的域名 2021-05-17 22:29:56 +08:00
MrZ626
d4fb606c72 再更新新房间列表ui 2021-05-17 15:15:12 +08:00
MrZ626
4cfdd4e58b 修复ws状态指示器在屏幕尺寸不标准时显示位置错误 2021-05-17 14:57:53 +08:00
MrZ626
3b82a144ea 升级本地和服务器提供的房间数据格式(警告:和旧版本不兼容),修复“游戏中”标记会被带到别的房间 2021-05-17 01:02:04 +08:00
MrZ626
2f06c1b476 前推版本适配代码,更新版本号 2021-05-16 21:35:22 +08:00
MrZ626
25b6b2c5ba 修改更新日志 2021-05-16 21:29:35 +08:00
MrZ626
9948505145 微调spike的画面效果 2021-05-16 21:26:23 +08:00
MrZ626
9d8feab2cc 添加spike计数器开关,调整画面设置界面布局 2021-05-16 20:56:13 +08:00
MrZ626
bcb5d3eba4 新增spike计数器 2021-05-16 20:29:01 +08:00
MrZ626
d7a10c00ed 再优化一点玩家绘制性能,整理代码 2021-05-16 19:10:03 +08:00
MrZ626
d2593cfb81 整理初始化空玩家代码 2021-05-16 16:32:08 +08:00
MrZ626
8101cf89f8 修复命令行空白输入报错
closes #63
2021-05-16 14:15:14 +08:00
MrZ626
8636c6dcd5 重新启用margin time,但基于帧而不是时间 2021-05-16 14:09:06 +08:00
MrZ626
b9c5599f95 修复对战房间内按钮会触发聊天框 2021-05-16 03:16:07 +08:00
MrZ626
93f854e6e4 简化/混淆水印代码 2021-05-16 03:07:25 +08:00
MrZ626
ffc09b0801 房间内文本框操作更自然 2021-05-16 02:55:25 +08:00
MrZ626
d246064ded 新增几个灰色tip 2021-05-16 01:59:35 +08:00
MrZ626
468f264545 整理代码,修改更新日志 2021-05-15 23:50:44 +08:00
MrZ626
9bec223b09 升级控件模块,封装focus相关的几个静态方法 2021-05-15 23:32:14 +08:00
MrZ626
4606bb4d01 调整进入联网游戏菜单的音效播放时机 2021-05-15 23:31:44 +08:00
MrZ626
c8405c8924 词典添加游戏官网 2021-05-15 20:58:09 +08:00
MrZ626
95a33c0e6c 主菜单按钮行为更容易理解,添加连接音效和连接成功音效 2021-05-15 20:17:31 +08:00
MrZ626
ed2ad35dde 修改默认空用户名,修复结算时显示胜利者可能报错 2021-05-15 17:57:30 +08:00
MrZ626
234ae08c76 微调双语tips 2021-05-15 17:57:16 +08:00
MrZ626
d21506b8d7 微调房间内玩家对象的绘制 2021-05-15 17:57:09 +08:00
MrZ626
1fa7bf9c27 修复房间内玩家连接状态相关代码一处概率报错 2021-05-14 22:23:05 +08:00
MrZ626
b50e01e4cf 修改更新历史,更新版本号 2021-05-14 22:23:05 +08:00
MrZ626
7abf9b0d0c 增加自定义游戏锁延刷新次数挡位 2021-05-14 22:23:04 +08:00
MrZ626
504c6f46c3 新增无尽pc挑战模式,微调其他pc模式的数据展示 2021-05-14 22:23:04 +08:00
MrZ626
78b1dcc949 减少生存模式最高两个难度的锁延刷新次数 2021-05-14 20:40:13 +08:00
MrZ626
9b0c859593 把三个设置项改成默认开启 2021-05-14 20:22:57 +08:00
MrZ626
c9a3075d0a 修复联网房间内潜在的报错可能 2021-05-14 20:20:54 +08:00
MrZ626
953b17ee88 textBox控件在隐藏时也会自动滚动 2021-05-14 20:20:54 +08:00
MrZ626
95bc979da7 主菜单点联网游戏按钮尝试连接时会有文字提示,房间内可以显示其他玩家的ws(stream)连接状态 2021-05-14 20:20:54 +08:00
MrZ626
622b1a5e25 主菜单点击联网游戏按钮尝试连接时会有文字提示 2021-05-14 18:58:44 +08:00
MrZ626
0c66ca1bdc 调整干旱2模式的标题 2021-05-14 16:25:42 +08:00
MrZ626
67323c4d93 yygq语言的tips改为深灰色移入普通语言 2021-05-14 16:25:42 +08:00
MrZ626
e2b0069947 调整统计文件保存时机,左上角不再弹出保存成功提醒 2021-05-14 12:11:56 +08:00
MrZ626
5697a201ef 简化LOG.print的功能和使用 2021-05-14 11:35:34 +08:00
MrZ626
c6115e3417 修复聊天窗带空格的消息会被截断 2021-05-14 10:29:52 +08:00
MrZ626
0ad122ce01 string扩展模块新增trim方法 2021-05-14 10:23:16 +08:00
MrZ626
121e1421d3 联网对战暂时关闭margin time的设定,有同步bug 2021-05-14 00:22:58 +08:00
MrZ626
e674457e6f 更新开房api,为未来加入新功能做准备 2021-05-14 00:22:58 +08:00
MrZ626
45948b9d94 LOG.print缺失输入文本时不再直接爆炸 2021-05-13 23:29:01 +08:00
MrZ626
8d0bfce39f 修复粘贴场地可能报错,补充缺失的文本 2021-05-13 23:26:41 +08:00
MrZ626
5eeab94368 补充更新说明 2021-05-13 22:35:24 +08:00
MrZ626
d415d68762 控件系统hide机制大改,实现房间内聊天框功能 2021-05-13 22:29:17 +08:00
MrZ626
0d4760f819 联网游戏房间内支持打字聊天(有较大体验问题,请不要使用) 2021-05-13 20:41:14 +08:00
MrZ626
a0e6bda26e 开房函数添加密码参数 2021-05-13 20:36:09 +08:00
MrZ626
85e6810f99 封装inputBox控件的文本修改方法 2021-05-13 19:48:07 +08:00
MrZ626
38326bc3b6 修复文本框控件有一处可能触发的报错,整理代码 2021-05-13 19:24:43 +08:00
MrZ626
3e89edefdb 调整margin time 2021-05-13 17:17:09 +08:00
MrZ626
554e63925d 房间开始状态会被记录带进房间内显示 2021-05-13 16:20:19 +08:00
MrZ626
57701c6041 自定义游戏设置项会自动更新 2021-05-13 15:21:26 +08:00
MrZ626
57e1213370 更新模式文件说明文档 2021-05-13 15:21:26 +08:00
MrZ626
d1ed97e5b4 移除drawableText中的不变文本 2021-05-13 15:20:41 +08:00
MrZ626
f293f043d5 本地玩家和远程玩家使用同一个draw函数,本地玩家也会显示用户名 2021-05-13 15:05:52 +08:00
MrZ626
70408e4a2e 自定义游戏高级设置加入新增功能,最高场地高度机制微调,增加可视化 2021-05-13 15:05:51 +08:00
MrZ626
a04438dbf8 新增initSkip功能,允许开局跳过若干个方块 2021-05-13 11:52:25 +08:00
MrZ626
0f30a35ae3 整理代码 2021-05-13 11:52:17 +08:00
MrZ_26
e56391c347 Merge pull request #68 from 26F-Studio/user670-patch-manual-20210513
Update manual_en.lua
2021-05-13 11:48:27 +08:00
user670
9612085a6a Update manual_en.lua 2021-05-13 10:32:43 +08:00
MrZ626
5bac3002f8 补充更新说明 2021-05-13 02:52:11 +08:00
MrZ626
c50d1af806 更新配音文档 2021-05-13 02:51:59 +08:00
MrZ626
96a07c96ee 修复本地没有hash值不会去加载头像的问题 2021-05-13 02:46:10 +08:00
MrZ626
cc1261c285 玩家的随机数生成器独立为四个,尝试避免联网对战时不同步错误,整理代码 2021-05-13 02:34:32 +08:00
MrZ626
adbb888fe4 修复netPlayer模块的一些错误 2021-05-13 00:49:25 +08:00
MrZ626
64122b61fc 修正rnd出块算法的一点问题 2021-05-13 00:15:28 +08:00
MrZ626
bd4c7880e9 修复画面设置界面布局问题 2021-05-12 23:09:43 +08:00
MrZ626
53433b33d6 调整两个默认音量设置 2021-05-12 22:33:07 +08:00
MrZ626
ef2346efa0 修复不能正确解析来自服务器的切断ws消息 2021-05-12 22:14:37 +08:00
MrZ626
0f61c8db8b 增加加载分片数,调整用到的音效,移除忘了删的测试代码 2021-05-12 17:57:21 +08:00
MrZ626
b67c0b8232 修复旋转中心换代码之后的透明度错误 2021-05-12 17:57:05 +08:00
MrZ626
e365daba93 登录界面可以选择记住密码 2021-05-12 16:54:14 +08:00
MrZ626
71a2bfe284 移除电池、旋转中心的图片改用DOGC,一些框架init中用到的可绘制素材移出TEXTURE模块 2021-05-12 09:42:31 +08:00
MrZ626
dd767aa088 整理代码 2021-05-12 09:06:45 +08:00
MrZ626
2ff66b32fd 更换新的naki立绘 2021-05-12 08:27:40 +08:00
MrZ626
fe2d34b057 修改ws的ping间隔和自我认定掉线时间 2021-05-12 01:46:13 +08:00
MrZ626
e3b36c8ad1 玩家个人信息栏下部显示在线玩家数量 2021-05-12 01:45:42 +08:00
MrZ626
99ba68fce8 缓冲垃圾行数预览可开关,调整视频设置的ui 2021-05-11 18:31:17 +08:00
MrZ626
91e33495da 绘制帧率从滑条改为选择器 2021-05-11 18:03:01 +08:00
MrZ626
d6699fbaa1 控件模块避开使用drawableText,移除drawableText中的大于小于号 2021-05-11 16:00:24 +08:00
MrZ626
08666e8bd2 修正音效室返回按钮没声 2021-05-11 02:00:16 +08:00
MrZ_26
b2b397f3e4 Merge pull request #67 from 26F-Studio:user670-patch-20210511
Update dict_en.lua
2021-05-11 01:42:09 +08:00
user670
8336a6c7a6 Update dict_en.lua 2021-05-11 01:39:20 +08:00
MrZ626
506989580f 整理代码 2021-05-11 01:14:18 +08:00
MrZ626
cd258057fb 修改更新历史 2021-05-11 01:08:07 +08:00
MrZ626
044247dccf 整理玩家update代码,添加垃圾行缓冲条总数警告 2021-05-11 01:05:46 +08:00
MrZ626
b3f7c2cb4a 微调两个按钮控件的显示,适应新的细字体 2021-05-11 00:55:47 +08:00
MrZ626
02508c71a0 更换一个细一点的字体 2021-05-11 00:55:26 +08:00
MrZ626
20f77fe26b 微调游戏设置界面ui,字号更统一 2021-05-11 00:44:48 +08:00
MrZ626
cd889da4bd 取消超高死亡判定 2021-05-10 22:51:05 +08:00
MrZ626
83c64785ec 垃圾行缓冲总数改为单独变量 2021-05-10 22:42:32 +08:00
MrZ626
ae260f4908 修复新的网格绘制有坐标错误 2021-05-10 21:10:27 +08:00
MrZ626
fefa5433fd 整理代码,使用TABLE.find 2021-05-10 17:28:26 +08:00
MrZ626
f3eb95df93 table扩展模块新增两个搜索用函数 2021-05-10 15:53:14 +08:00
MrZ626
8571b020b9 修正几处变量泄漏到全局,整理代码,main开头添加一点代码习惯说明 2021-05-10 15:13:45 +08:00
MrZ626
297ccf4496 整理代码,继续减少单双引号混用 2021-05-10 14:53:20 +08:00
MrZ626
5e617375e1 修复按钮切换场景的快捷方式函数缓存时没有考虑到切换样式 2021-05-10 14:50:20 +08:00
MrZ626
7307a071ab 允许模式给每个玩家初始化多个任务(暂未使用) 2021-05-10 14:46:44 +08:00
MrZ626
ee4ca51aff 整理代码,略微优化性能,调整玩家攻击力和框颜色相关代码,联网对战每分钟会增加攻击力 2021-05-10 14:40:55 +08:00
MrZ626
dd682a4e6a 完全移除不再需要的聊天室场景代码,移除更新版本后自动跳转更新历史页面的功能 2021-05-10 02:26:20 +08:00
MrZ626
8893c7da3e 添加0.14.7的更新说明,修改版本号 2021-05-10 02:11:41 +08:00
MrZ626
364024ca0f 双语词典添加更多删除存储数据文件的说明 2021-05-10 02:08:06 +08:00
MrZ626
4bf8eb4c1a 新增两个保存虚拟按键布局的按钮 2021-05-10 01:44:51 +08:00
MrZ626
4cc77e0068 单挑模式的bgm全都换成battle 2021-05-10 00:56:05 +08:00
MrZ626
bd99556e1e 新增模式环境变量maxOver,允许超屏最大高度可以调整 2021-05-09 22:52:01 +08:00
MrZ626
93e422e1cc 新增模式环境变量bufferLimit,攻击缓冲上限可以调整 2021-05-09 22:44:59 +08:00
MrZ626
cba9464b6f 远程对手按照录像流长度进行更快速的追帧,解决本地卡顿导致看到对手也会卡顿的问题 2021-05-09 22:30:59 +08:00
user670
d09240944b Merge branch 'main' of https://github.com/26F-Studio/Techmino into main 2021-05-09 21:38:13 +08:00
MrZ626
16e7dd71f1 test场景微调 2021-05-09 21:35:24 +08:00
MrZ626
ac546e4f8d 测试场景可以响应拖入文件/文件夹事件 2021-05-09 21:35:24 +08:00
MrZ626
2663e4d629 场景模块支持directoryDropped事件 2021-05-09 21:35:24 +08:00
MrZ626
7ff13b286e 整理代码,微优化 2021-05-09 21:35:23 +08:00
MrZ626
e44964696a 订正小问题,ren命令改名mv(ren仍可用) 2021-05-09 21:35:23 +08:00
MrZ626
db53da509d 整理代码,gameOver函数放入gameToolFunc文件 2021-05-09 19:22:11 +08:00
MrZ626
de7f1b92f6 增删中文tips 2021-05-09 17:24:46 +08:00
MrZ626
0886bfe8f9 修复特殊情况下尝试显示用户头像时会报错 2021-05-09 15:29:09 +08:00
MrZ626
46b3ad8a70 整理代码,修复房间里的各就各位/预备标记显示时机问题 2021-05-09 02:26:03 +08:00
MrZ626
b4be31361e 修正hisPool序列生成算法 2021-05-08 13:14:01 +08:00
MrZ626
b11e5e12d3 玩家会从各个方向出现并且初始高度设为临界值,进房时不会看到字号变化了 2021-05-07 02:41:53 +08:00
MrZ626
177edbf7d6 修复玩家模块的重大问题 2021-05-07 02:37:28 +08:00
MrZ626
6a335d9c31 新增hisPool出块算法,微调his出块算法 2021-05-07 02:31:57 +08:00
MrZ626
152e248a15 修改版权时间,用户环境新增一个获取时间的函数 2021-05-07 01:00:30 +08:00
MrZ626
ed6c6dc793 微调his词条,英文等待翻译 2021-05-06 21:38:45 +08:00
MrZ626
192607f874 更改控制台内rmwtm的说明,rmwtm也不再以明文存在于代码 2021-05-06 15:23:03 +08:00
MrZ626
a2c610e877 房间名移动到右下角,新消息提醒不再闪烁 2021-05-06 13:34:00 +08:00
MrZ626
fa745cca61 降低部分背景底色亮度,blockspace更真实 2021-05-05 16:20:26 +08:00
MrZ626
65a4bd3665 删除虚拟按键颜色,恢复最早的白色 2021-05-05 15:51:45 +08:00
MrZ626
29a5556c33 常驻版本信息显示移动到屏幕中间 2021-05-05 14:39:52 +08:00
MrZ626
5afba67c1d 取消软件锁功能,调整设置界面布局 2021-05-05 14:39:02 +08:00
MrZ626
9af190529c 略微优化性能 2021-05-05 11:12:43 +08:00
MrZ626
1d36d50fca 整理代码,移除主菜单ai角框,修复触屏在房间内会不能操作 2021-05-05 10:51:11 +08:00
MrZ626
871e042044 修复文本框控件new属性在清空后仍保留 2021-05-05 10:44:08 +08:00
MrZ626
9a99f5d851 微调关于界面ui,整理代码 2021-05-05 10:40:56 +08:00
MrZ626
c0d97939fa 修复hold会让锁延刷新次数超出上限 2021-05-05 10:35:46 +08:00
MrZ626
58305a9690 序列生成模块改名,修正his4的”重复“概念为序列里的id重复而不是方块重复 2021-05-05 10:21:07 +08:00
MrZ626
2e7df49c4f 优化多处玩家绘制代码,新技术使用 2021-05-05 02:23:02 +08:00
MrZ626
e984ce39c3 优化玩家绘制,简化击杀标记 2021-05-05 01:18:05 +08:00
MrZ626
2ce1ca6bf8 控制台里的demo改为test 2021-05-05 00:27:38 +08:00
MrZ626
1c342d0327 房间内显示房间信息 2021-05-04 18:01:25 +08:00
MrZ626
f68aa26278 房间内玩家布局基本完成,添加鼠标悬浮显示详细信息框功能 2021-05-04 17:37:22 +08:00
MrZ626
175d9bd7d7 添加一些tip 2021-05-04 16:19:34 +08:00
MrZ626
9836bda502 房间内玩家对象管理单独做进新模块netPlayer,为未来消息气泡和发表情做准备 2021-05-04 02:21:52 +08:00
MrZ626
a21e7a5e8d 整理代码 2021-05-04 02:16:43 +08:00
MrZ626
42f3cd8e31 场景模块支持窗口resize事件 2021-05-04 02:09:50 +08:00
MrZ626
1038e75a64 修复textbox控件clear后忘了重置new属性 2021-05-03 13:23:13 +08:00
MrZ626
d90f0f3e86 拆分全员准备和连接ws准备开局的提示 2021-05-03 13:17:36 +08:00
MrZ626
18b5efcc0e 修复准备标记状态问题 2021-05-03 12:58:21 +08:00
MrZ626
2627e55229 整理代码 2021-05-03 02:08:37 +08:00
MrZ626
d605e5fbb8 场景模块支持拖拽文件事件 2021-05-03 01:59:00 +08:00
MrZ626
445b0167fa 修复table扩展模块complete方法的一个问题 2021-05-02 23:55:57 +08:00
MrZ626
0012788eb1 更早加载SHADER模块,配合之前优化绘制 2021-05-02 23:13:02 +08:00
MrZ626
32403078bc 优化一点绘制性能 2021-05-02 22:31:27 +08:00
user670
992e28a036 Merge branch 'main' of https://github.com/26F-Studio/Techmino into main 2021-05-02 15:27:48 +08:00
MrZ626
e14307045d 升级table扩展模块 2021-05-02 14:53:49 +08:00
MrZ626
53b0d1fda3 左下角恒定显示版本号 2021-05-02 14:25:30 +08:00
MrZ626
97cfbdb982 修正sdf词条错别字和格式问题 2021-05-02 14:03:48 +08:00
MrZ626
7369c22401 新增nuketris和falling lightblock词条,英文待翻译 2021-05-02 13:52:20 +08:00
MrZ626
e662ad1dfc 调整暂停界面大文本的位置 2021-05-02 12:25:32 +08:00
MrZ626
45ecff616c 修正部分模式的颜色引用方式 2021-05-02 12:25:15 +08:00
MrZ626
b05a19f036 控制台支持滚轮和键盘导航 2021-05-02 11:44:37 +08:00
MrZ626
3bca0336fa wheelScroll小模块支持指定按键 2021-05-02 11:43:56 +08:00
MrZ626
216bb4ea87 修复本地混战模式ai死亡时报错,微调胜利/失败文本显示相关代码 2021-05-02 11:19:02 +08:00
MrZ626
7017901594 修复地图点bigbang就爆炸 2021-05-02 10:36:42 +08:00
MrZ626
72524ab50f 优化textbox控件的行为,联网对战时能显示消息提示了 2021-05-02 02:20:36 +08:00
MrZ626
9adaa3c3d6 修复联网对战时“退出”操作相关的一些问题 2021-05-02 01:54:14 +08:00
user670
653628f0b3 Merge branch 'main' of https://github.com/26F-Studio/Techmino into main
This is to resolve an issue with my LOCAL repository.
If this seems to affect the REMOTE repository please let me know.
2021-05-02 00:55:42 +08:00
MrZ626
a4186dbf84 补充更新说明 2021-05-01 23:14:36 +08:00
MrZ626
74de4c14d3 支持17和31人内布局 2021-05-01 23:14:36 +08:00
MrZ626
11bb084d70 整理代码 2021-05-01 23:14:35 +08:00
MrZ626
1fae1c9ba6 修正玩家showText的字号并不需要跟随玩家尺寸变化 2021-05-01 23:14:35 +08:00
MrZ626
5aa483b445 控制台新增ren(重命名)命令 2021-05-01 23:14:35 +08:00
MrZ626
ea4b5ed297 微调del命令相关代码 2021-05-01 23:14:35 +08:00
MrZ626
a557925a63 修复载入旧存档时部分模式数据反了 2021-05-01 23:14:34 +08:00
MrZ626
ac64dd0b67 补充更新说明 2021-05-01 23:14:34 +08:00
MrZ626
b74cca772b 把最早用的皮肤加回来 2021-05-01 23:14:34 +08:00
MrZ626
f6da1a525c 调整textbox控件右上角的清空小按钮 2021-05-01 23:14:34 +08:00
MrZ626
5049262846 修复简洁模式帮助按钮无效 2021-05-01 23:14:34 +08:00
MrZ626
c53e55d703 修改doGC模块dLine命令名 2021-05-01 23:14:34 +08:00
MrZ626
d6801d5be5 整理代码 2021-05-01 23:14:33 +08:00
MrZ626
bd8e55b977 整理代码 2021-05-01 23:14:33 +08:00
MrZ626
f8de8d4f16 更新联网对战bgm列表 2021-05-01 02:09:19 +08:00
MrZ626
2eb4818398 新增bgm:hope(用于master-ex) 2021-05-01 01:57:11 +08:00
MrZ626
eda6c0d746 整理代码习惯,常量字符串改用单引号,可能有遗漏 2021-04-30 02:01:36 +08:00
MrZ626
7676f32cf2 修复联网主菜单设置按钮无效,房间列表交互微调 2021-04-29 23:46:39 +08:00
MrZ626
a4f920ae86 修复控制台一些Aliases不能用 2021-04-29 23:38:07 +08:00
MrZ626
c21e010159 再次调整cmd相关,全部改成console 2021-04-29 23:30:00 +08:00
MrZ626
89b87be143 删除部分场景遗留的鼠标右键返回 2021-04-29 18:49:02 +08:00
MrZ626
5607930540 存档管理功能移至命令行改为手动删文件清除,说明位于词典内 2021-04-29 18:49:02 +08:00
MrZ626
957eb64753 控制台的del命令添加递归模式开关 2021-04-29 18:49:01 +08:00
MrZ626
d05c38ac58 控制台del命令同义词rem改为rm 2021-04-29 18:49:01 +08:00
MrZ626
bb30a8e9d1 blackhole背景中方块会公转,整理代码 2021-04-29 18:49:01 +08:00
MrZ626
19a3181ffb 新背景:blockspace 2021-04-29 18:49:01 +08:00
MrZ626
ac411c6dd4 补充更新说明 2021-04-29 11:35:07 +08:00
MrZ626
c770fc4528 修改一些背景默认值 2021-04-29 11:24:46 +08:00
MrZ626
29e664ece4 blackhole和blockrain背景适配任意尺寸屏幕 2021-04-29 11:16:33 +08:00
MrZ626
d378e1479d 新背景:blockfall 2021-04-29 11:04:19 +08:00
MrZ626
b58c525a6d 修复zDay节日判定错误 2021-04-29 10:32:36 +08:00
MrZ626
2de7fb9956 更新ospin,修复变JL的问题和测试逻辑的一个小问题 2021-04-29 00:18:16 +08:00
MrZ626
6d3ec2a8d2 联网模式主菜单添加设置按钮 2021-04-29 00:16:42 +08:00
MrZ626
4ac3fea028 微调房间列表和房间内ui 2021-04-29 00:16:29 +08:00
MrZ626
602c321067 修复无用户信息时主菜单获取临时头像报错 2021-04-28 21:53:50 +08:00
MrZ626
e50f1d9f50 删除一些会导致报错的老设计/老代码 2021-04-28 21:36:13 +08:00
MrZ626
f48a9c6a33 打开省流模式的时候会再刷新一次用户头像 2021-04-28 21:29:21 +08:00
MrZ626
c8db07a8c8 调整table扩展模块相关代码 2021-04-28 17:22:35 +08:00
MrZ626
1fc4dae61b 自定义游戏菜单调整,新增重置按钮 2021-04-28 17:17:26 +08:00
MrZ626
d5ca3113e2 自定义场地三个鼠标键均可自定义颜色 2021-04-28 15:53:42 +08:00
MrZ626
66c70eb292 取消右键返回,控件支持右击,整理代码 2021-04-28 15:24:09 +08:00
MrZ626
fcae6c61e4 整理代码,部分全局变量声明移入Zframework中 2021-04-28 14:13:19 +08:00
MrZ626
28576c2c9a 整理代码 2021-04-28 09:36:22 +08:00
MrZ626
385d376037 微调场地绘制的交互 2021-04-28 09:17:28 +08:00
MrZ626
1d796c624d 补充更新说明 2021-04-27 23:28:53 +08:00
MrZ626
8b8ec2c175 控件系统支持开关音效,key控件添加音效 2021-04-27 22:50:54 +08:00
MrZ626
293258b606 点击选择房间的时候会有提示音 2021-04-27 21:41:01 +08:00
MrZ626
ef9f9ae04f 微调控制台ui,简化帮助命令 2021-04-27 21:25:22 +08:00
MrZ626
de7922181b 简化进入控制台的方法 2021-04-27 21:23:57 +08:00
MrZ626
637d3ee670 全员准备的提示改为文本 2021-04-27 21:08:19 +08:00
MrZ626
be769a3617 整理代码 2021-04-27 21:00:30 +08:00
MrZ626
c21a5afb61 修复拉取自己用户信息时缺少头像导致报错 2021-04-27 20:53:55 +08:00
MrZ626
3f5c9eb9b4 修复谜题数据解析时错误解析最后的空白符 2021-04-27 19:11:13 +08:00
MrZ626
74d493199f 房间选择列表支持平滑滚动 2021-04-27 15:18:04 +08:00
MrZ626
c341cecdbc 修复旋转机制的一个错误设计导致高速经典转不动 2021-04-27 13:00:54 +08:00
MrZ626
c99a715f30 用户信息显示时名字过长会自动缩短 2021-04-27 12:44:44 +08:00
MrZ626
530c87b81e 默认头像从随机改为由uid确定 2021-04-27 11:48:34 +08:00
MrZ626
3d7584b015 添加一些tip 2021-04-27 10:59:46 +08:00
MrZ626
87a1424df0 未获取到用户头像时显示随机方块 2021-04-27 10:52:33 +08:00
MrZ626
355c2cd8a1 添加省流开关(加载头像) 2021-04-27 10:00:48 +08:00
MrZ626
bc9aaff19a 更新0.14.6版本号,添加更新说明 2021-04-27 01:09:58 +08:00
MrZ626
cb040a5669 修复看到新的用户后没有尝试获取头像 2021-04-27 01:09:15 +08:00
MrZ626
4a31485359 房间选择界面支持点选和拖动,ui调整 2021-04-27 01:03:12 +08:00
MrZ626
ad1cffe113 整理代码 2021-04-26 22:00:52 +08:00
MrZ626
e758b03e07 修改一些tips 2021-04-26 12:03:19 +08:00
MrZ626
e31caaeb65 联网对战房间内新增设置按钮,不离开房间就能修改设置(需要在未准备状态) 2021-04-26 11:06:13 +08:00
MrZ626
0b885d83af 更新词典中MrZ的top数据 2021-04-26 10:53:29 +08:00
MrZ626
7f11ea594e 主菜单ai场地边上加个暗示可点击的框 2021-04-25 20:52:34 +08:00
MrZ626
76278cf11f 更改游戏图标 2021-04-25 20:26:45 +08:00
MrZ626
65eb109cb9 升级全局变量泄露检测代码 2021-04-25 20:26:45 +08:00
MrZ626
3d02bc87ea 修复多处全局变量泄露,整理代码 2021-04-25 20:26:45 +08:00
MrZ626
4f278925f4 微调网战房间内ui,全员准备后会有可视化标记 2021-04-25 20:26:45 +08:00
MrZ626
cb16482a61 doGC模块支持条件绘制,进一步淘汰TEXTURE模块中NSC+代码式的材质生成方法 2021-04-25 14:28:22 +08:00
MrZ626
46f118bbb9 再调整doGC命令集 2021-04-25 10:41:08 +08:00
MrZ626
3a5bff36b2 虚拟按键素材生成代码由TEXTURE模块移至虚拟按键模块内 2021-04-25 10:25:13 +08:00
MrZ626
18f2e4ce04 未知用户头像改为问号 2021-04-25 10:10:04 +08:00
MrZ626
1cc5eea3a4 扩展doGC命令集,新增文本绘制相关 2021-04-25 10:09:36 +08:00
MrZ626
20a8470b3c 修复即使有noMod也会显示开了什么mod,模式属性noMod改名allowMod 2021-04-24 17:25:43 +08:00
MrZ626
e242a89a4b 整理代码 2021-04-24 16:24:53 +08:00
MrZ626
9de9048a78 服务器认定全员准备三秒后取消准备按钮消失,整理代码 2021-04-24 16:11:53 +08:00
MrZ626
311dc3b644 修复触屏虚拟按键松开后按钮还亮着 2021-04-24 01:13:07 +08:00
MrZ626
e49e4a05bc 修复科研模式不会结束游戏 2021-04-24 01:13:04 +08:00
MrZ626
79a7c53581 修正一处修改翻译的问题 2021-04-24 01:12:49 +08:00
user670
3cdc0d34f3 Update lang_en.lua
Somehow a question mark is outside of the quotation marks
2021-04-23 22:31:10 +08:00
user670
291e458745 Merge pull request #65 from 26F-Studio/user670-patch-1
Fixes a capitalization error when calling the color module
2021-04-23 20:25:05 +08:00
user670
080efec9e0 Fixes a capitalization error when calling the color module
Closes #64
2021-04-23 20:24:46 +08:00
MrZ_26
83444fbe00 Merge pull request #62 from MattMayuga/main
Updated some English text
2021-04-23 18:19:26 +08:00
MrZ_26
737fc24e16 Merge branch 'main' into main 2021-04-23 18:18:57 +08:00
MrZ626
b9d2a8b283 退出登录会删除USER.username 2021-04-23 16:26:52 +08:00
MrZ626
e999a9cb1e 主菜单退出按钮改成返回按钮 2021-04-23 16:19:39 +08:00
MrZ626
d111f7fc66 控制台场景可以esc返回 2021-04-23 16:16:51 +08:00
MrZ626
fb1970ffc2 升级存档更新流程 2021-04-23 16:05:10 +08:00
MrZ626
a96b308c28 安卓不再每次启动时复制动态库文件 2021-04-23 15:48:21 +08:00
MrZ626
5af3021d08 新增一些tip 2021-04-23 15:44:20 +08:00
MrZ626
2e477bdab6 整理代码 2021-04-23 13:06:14 +08:00
MrZ626
05b697debf 更新玩家头像/用户信息绘制相关 2021-04-23 13:05:17 +08:00
MrZ626
b0064d179c texture模块添加lvIcon素材代码,具体样式还需修改 2021-04-23 12:57:38 +08:00
MrZ626
48dbed2571 doGC模块新增clear命令 2021-04-23 12:56:49 +08:00
MrZ626
7643f19815 词典添加手感词条 2021-04-23 11:42:03 +08:00
MrZ626
deca828207 ws模块debug选项升级 2021-04-23 10:21:47 +08:00
MrZ626
754a8f611f 修正从服务器获取用户信息消息格式错误 2021-04-23 10:17:28 +08:00
MrZ626
f12356beb4 房间内显示其他玩家头像 2021-04-23 09:23:23 +08:00
MrZ626
c9c5092055 修复未加载头像尺寸不正确和未登录会报错 2021-04-23 09:17:45 +08:00
MrZ626
a541317801 整理代码 2021-04-23 08:41:29 +08:00
MrZ626
c7d15fbd3d 修复触屏按虚拟按键爆炸 2021-04-23 08:23:59 +08:00
MrZ626
420abe8240 添加一段测试用代码,检查变量泄露 2021-04-22 21:59:02 +08:00
MrZ626
95c9a1d638 整理代码,royaleData改为全大写,放入globalTables文件全局变量定义 2021-04-22 21:54:40 +08:00
MrZ626
7971eba517 修改0.14.5更新日志 2021-04-22 17:59:17 +08:00
MrZ626
c27e99aa6c 接收注册时服务器可能会返回更多的消息 2021-04-22 17:46:23 +08:00
MrZ626
5b22712058 修复key控件右对齐代码错误和slider控件一定会有obj属性,整理代码 2021-04-22 17:44:15 +08:00
MrZ626
c9109986d1 主菜单语言按钮移到左上角 2021-04-22 17:30:57 +08:00
MrZ626
570508beba 整理代码 2021-04-22 16:57:26 +08:00
MrZ626
f890f9fdf1 修复textBox控件外框颜色不正确 2021-04-22 16:45:14 +08:00
MrZ626
94412b9c83 修复一处修改完引擎缩放模式忘了重置为linear模式 2021-04-22 16:39:46 +08:00
MrZ626
fca81dee71 给中文词典各个游戏加上缩写说明(如果有) 2021-04-22 16:18:48 +08:00
MrZ626
9f956f965a 新增virtualKey模块整理虚拟按键相关代码,整理代码 2021-04-22 16:18:48 +08:00
MrZ626
2400325b22 整理代码 2021-04-22 16:18:48 +08:00
user670
ae3c8e8548 Merge branch 'main' into main 2021-04-22 15:39:42 +08:00
MrZ626
0007b2ab07 调整中文tip 2021-04-22 13:02:26 +08:00
MrZ626
2594d43a53 补充0.14.5的更新说明 2021-04-22 11:26:01 +08:00
MrZ626
39e6504bb5 整理代码 2021-04-22 11:25:23 +08:00
MrZ626
402f777a90 整理代码,新增string扩展模块,把一些小模块合并进string和table扩展模块中 2021-04-22 11:25:23 +08:00
MrZ626
7b0717c392 微调中文词典两个词条 2021-04-22 10:35:23 +08:00
MrZ626
e303a8a300 减小退出按键触发彩蛋的概率,改正语法错误 2021-04-22 10:17:43 +08:00
MrZ626
31cb4b1ad9 控件模块新增修改显示内容的方法,修复key控件右对齐模式绘制错误,修复主菜单快速开始按钮内容不正确 2021-04-22 00:46:50 +08:00
MrZ626
ca746075db 微调音乐battle并添加到联网对战BGM列表 2021-04-22 00:33:17 +08:00
MrZ626
1676f36b5b 尝试访问不存在的颜色时会直接抛出错误,不再等到绘制时 2021-04-22 00:02:57 +08:00
MrZ626
0a2763e769 修复自定义拼图模式提示素材不正确 2021-04-22 00:00:07 +08:00
MrZ626
09d0612aeb 整理代码,修改颜色名和几乎所有的使用方法(可能有错误,需要后续再整理) 2021-04-22 00:00:07 +08:00
MrZ626
9b3b0e2086 新增BGM:Battle(用于单挑l/u难度,作者暂时还不知道,之后再补上) 2021-04-21 16:12:21 +08:00
MrZ626
f28ab22ef9 修复新版本默认虚拟按键颜色值错误导致无限重启 2021-04-21 16:06:55 +08:00
MrZ626
935cb44639 补全词典里adpm的vs参数说明 2021-04-21 09:00:16 +08:00
MrZ626
5579c85bf4 更新两个词典中的茶服域名 2021-04-20 15:19:17 +08:00
MrZ626
ca856cbb35 增加玩家个人信息显示框(暂时只有头像) 2021-04-20 01:40:50 +08:00
MrZ626
6cee129a68 主菜单语言按钮改用地球图标 2021-04-20 01:35:42 +08:00
MrZ626
9fa420d6e3 控件系统升级,部分控件的text属性改为任意love可绘制对象 2021-04-20 01:34:51 +08:00
MrZ626
ad7130b0d5 整理代码 2021-04-20 01:04:41 +08:00
MrZ626
9f04510c9b 简化ws-app的update代码,不再自动重连 2021-04-20 01:03:48 +08:00
MrZ626
5058fdf892 删除两行测试代码,添加arc系列命令 2021-04-20 00:47:46 +08:00
MrZ626
47043cf105 修正自定义游戏高级设置ui 2021-04-19 22:17:58 +08:00
MrZ626
e5b726aa4a 自定义游戏设置会自动保存 2021-04-19 22:17:27 +08:00
MrZ626
ae1dd6dfaa 升级users模块并修复问题,可以加载用户头像了 2021-04-19 21:39:44 +08:00
MrZ626
546d3f9b18 添加一个赞助人 2021-04-19 21:39:14 +08:00
MrZ626
81cf35322e ws状态信息放到左下角显示 2021-04-19 21:32:41 +08:00
MrZ626
12afb565c7 整理代码 2021-04-19 21:32:33 +08:00
MrZ626
5826231326 修改自定义模式默认设置为科研用 2021-04-19 19:56:30 +08:00
MrZ626
b0ac27ad23 修正tsd图标不正确 2021-04-19 18:29:37 +08:00
user670
5d1e286645 Update lang_en.lua
Line 103 `champion`: Reverted. It's a splash message that displays briefly, thus I believe a short phrase is more appropriate than a full sentence.

Line 113 `modInstruction`: Partially reverted. I believe the unranking part is an important message to convey.

Line 115 `modInfo.next`: amount->number, next->Next (capitalization)

Line 116 `modInfo.hold`: Queue->pieces. "Number of hold queue" makes no sense

In Tips:
- removed "Bass Bass Kick Kick Bass Kick Kick" (one reference per meme)
- removed "GO MY WAY!!" and "M@STER PEACE!!" (one reference per meme)
2021-04-19 18:21:05 +08:00
MrZ626
0baf5dba9f 修正控制台的setbg命令帮助 2021-04-19 18:17:57 +08:00
user670
9019350f0c Fixed a indentation inconsistency
In the commit where I fixed a merge conflict with Matt's translation update I messed up an indentation (~~thanks github web editor~~)
2021-04-19 18:06:05 +08:00
user670
306154572e Merge branch 'main' into main 2021-04-19 18:02:37 +08:00
MrZ626
65da7fdfbd 调低竞速模式部分评价要求,科研模式通关条件改为100攻击(原200) 2021-04-19 15:23:22 +08:00
MrZ626
f12e4128e6 再升级doGC模块,经典模式图标使用doGC生成 2021-04-19 15:13:00 +08:00
MrZ626
635be949f0 整理词典代码,添加触屏可用的翻页按钮 2021-04-19 13:36:55 +08:00
MrZ626
129e9d5417 修正中文词典一个用词减少误解可能 2021-04-19 13:30:15 +08:00
MrZ626
f389fa4eb2 "命令行"改名控制台 2021-04-19 12:15:48 +08:00
MrZ626
cb78009e64 词典支持左右键翻页 2021-04-19 10:50:15 +08:00
MrZ626
b79b6ab846 修改硬降音效 2021-04-19 01:16:54 +08:00
MrZ626
026fbc910f 升级doGC模块命令 2021-04-19 00:22:19 +08:00
MrZ626
63d3f02abe 修正三个不当颜色名 2021-04-18 23:21:56 +08:00
MrZ626
59a612c6fc 添加0.14.5更新日志和版本号 2021-04-18 20:35:17 +08:00
MrZ626
b382b8b264 缩短开房cd至6秒 2021-04-18 20:35:17 +08:00
MrZ626
af0e14daff 修正词典中部分人物词条顺序不正确 2021-04-18 19:52:09 +08:00
MrZ626
9cdb382d0d 整理代码 2021-04-18 18:40:32 +08:00
MrZ626
833d0723f2 修复c4w模式回放时初始地形会不一样 2021-04-18 18:23:43 +08:00
MrZ626
064fca3b0a 优化小程序dtw的ui和结算逻辑 2021-04-18 17:59:41 +08:00
MrZ626
34a7ab3bf3 修复更改联网玩家录像播放机制后接受攻击时报错 2021-04-18 17:57:35 +08:00
MrZ626
8aa8e431a7 调整/添加几个中文tip 2021-04-18 17:29:20 +08:00
MrZ626
fb838d198a 报错后自动断开所有ws 2021-04-18 17:29:02 +08:00
MrZ626
532b1f370a 调整主菜单点击联网游戏按钮代码的逻辑 2021-04-18 15:15:52 +08:00
MrZ626
c26f50d359 修改部分词条,调整词条顺序(意见来自群友 库德里尔) 2021-04-18 14:54:11 +08:00
MrZ626
b723469b43 修改DOGC模块setc的命令名 2021-04-18 14:20:53 +08:00
MrZ626
91c240c463 整理代码,DOGC模块加一个命令 2021-04-18 00:35:23 +08:00
MrZ626
6bb589325b 房间列表的 游戏中 标记改为多语言文本 2021-04-18 00:11:28 +08:00
MrZ626
fbd3f05c63 小程序dtw增加街机模式 2021-04-17 22:33:33 +08:00
MrZ626
07b3606d42 修复锁延刷新次数比显示(设置)的多一次 2021-04-17 01:53:38 +08:00
MrZ626
287d5a805d play场景改名game,整理代码,重构GAME.frame相关内容,修复联网录像播放不正确 2021-04-17 01:39:18 +08:00
MrZ626
444c5e571e 修复没开ihs的时候提前hold会死 2021-04-16 21:15:52 +08:00
MrZ626
1bf20a3217 修复联网对战的攻击动画可能显示错误 2021-04-16 20:47:31 +08:00
MrZ626
214e317804 联网主菜单/房间列表改为主题默认背景 2021-04-16 20:43:20 +08:00
MrZ626
8d0e89faf9 继续完善USERS模块,升级头像相关功能 2021-04-16 16:14:41 +08:00
MrZ626
ae41e5f2e6 新增开5人房的按钮 2021-04-16 16:14:41 +08:00
MrZ626
798a6c0eb6 微调词典和注释的一些字符 2021-04-16 09:39:19 +08:00
MrZ626
7ebda3b9ae 对战背景改为主题默认背景 2021-04-16 09:38:31 +08:00
MrZ626
30c5493486 修复无限踢墙 2021-04-16 08:27:58 +08:00
MrZ626
b4d27f3d0d 修改doGC模块两个命令的缩略名 2021-04-16 08:18:12 +08:00
MrZ626
e44a10de2c 整理代码 2021-04-16 01:33:33 +08:00
MrZ626
1baa59162e 词典移除两位在社群中存在感较低并且没有明显记载价值的个人词条 2021-04-16 01:33:33 +08:00
MrZ626
aacb11a22b 取消USER的username域,USERS独立为模块用于管理所有用户信息缓存(还未测试) 2021-04-16 01:33:33 +08:00
MrZ626
d041b0e993 file模块升级,支持非table数据直接保存为字符串 2021-04-15 02:34:05 +08:00
MrZ626
6c44808c19 整理代码,微调TRS中PQT5J5L5的踢墙表 2021-04-15 00:40:49 +08:00
MrZ626
ee28bacf0c 微调中文tip 2021-04-14 23:23:59 +08:00
MrZ626
199d05b910 更正赞助名单的一个名字 2021-04-14 22:13:11 +08:00
MrZ626
138e59d74f 修改yygq语言的对战胜利文本 2021-04-14 21:28:41 +08:00
MrZ626
dd26376b3b 调整master-ph命数奖励 2021-04-14 21:28:23 +08:00
MrZ626
9e07ee862c 修改pc和hpc对b2b点数的影响 2021-04-14 18:46:58 +08:00
MrZ626
9b11399d48 启用ffa按钮(服务器还未实现该房间) 2021-04-14 18:34:25 +08:00
MrZ626
baf97a90a1 整理代码 2021-04-14 18:34:25 +08:00
MrZ626
41d85e1f36 整理代码,增强hpc攻击力(2→4) 2021-04-14 14:23:11 +08:00
MattMayuga
ce0a46dc2b Update lang_en.lua 2021-04-14 03:01:51 +08:00
MrZ626
3c39c8a788 更好用的自定义绘图交互 2021-04-13 21:46:03 +08:00
MrZ626
321d6554e7 整理代码 2021-04-13 21:05:07 +08:00
MrZ626
cc9cf92b27 加强消四,获得b2b点数100→150 2021-04-13 13:03:38 +08:00
MrZ626
02b4f66b12 高品质源重新渲染super7th,裁剪最后静音 2021-04-13 10:46:27 +08:00
MrZ626
8889323476 音乐室显示音乐作者 2021-04-13 02:20:23 +08:00
MrZ626
df1633f011 新BGM:empty(用于节日主题,by ERM) 2021-04-13 02:20:23 +08:00
MrZ_26
4e840f3025 Merge pull request #61 from 26F-Studio/user670-patch-20210412
Edited applet command
2021-04-13 01:32:03 +08:00
MrZ626
e44bae66d5 修复登录界面邮箱格式判定错误 2021-04-13 01:26:08 +08:00
MrZ626
4e073d1bb6 添加0.14.4更新日志和版本号 2021-04-13 00:34:53 +08:00
MrZ626
2fbb295490 修复小程序15p盲打颜色配置错误 2021-04-13 00:32:29 +08:00
MrZ626
b72631cd82 修复一个小程序入口名错误 2021-04-13 00:27:57 +08:00
MrZ626
832c09980a 修复小程序2048之前在删goto时造成的逻辑错误 2021-04-13 00:26:02 +08:00
MrZ626
ca68a8ef87 玩家死亡消息以服务器为准,录像不同步不再影响结算 2021-04-12 23:10:39 +08:00
MrZ626
0645cec207 修改可能导致ws尝试发送数字消息然后报错的一处代码 2021-04-12 21:38:20 +08:00
MrZ626
53dde3ec9e 更换催促等待提示音 2021-04-12 21:27:37 +08:00
MrZ626
df5c16e05f 对战房间的准备按钮颜色和文本会随状态改变 2021-04-12 21:25:11 +08:00
MrZ626
bb3bb938e8 新BGM:vacuum(用于节日主题),zday拆分为zday1和zday2 2021-04-12 21:13:02 +08:00
MrZ626
c196a2104e 修改隐形模式BGM配置 2021-04-12 21:06:14 +08:00
MrZ626
c78c596095 修复master-ph错误,使用新BGM:super7th 2021-04-12 20:59:52 +08:00
MrZ626
8d2d0f0b22 修复his序列模式算法错误 2021-04-12 20:52:49 +08:00
MrZ626
26d06e8f3a 添加触摸/点击特效开关 2021-04-12 20:39:21 +08:00
MrZ626
59eb8ae7f1 调整画面设置ui 2021-04-12 19:15:52 +08:00
MrZ626
7d932016b8 联网对战时禁用鼠标右键返回 2021-04-12 18:48:34 +08:00
MrZ626
998eb56348 调整存档更新代码 2021-04-12 12:57:57 +08:00
MrZ626
7837064e80 不再接受过老版本的存档,每次启动删除存档文件夹内裸露的文件 2021-04-12 12:55:22 +08:00
MrZ626
53745c61e5 修改注册时的合法邮箱格式 2021-04-12 02:37:13 +08:00
MrZ626
14adcff9dc splitStr模块可开关正则(默认不用) 2021-04-12 02:08:54 +08:00
MrZ626
7d67288766 修复O块在变形后hold失去名字和颜色属性 2021-04-12 00:25:28 +08:00
MrZ626
d904b126df 自定义场地默认使用智能画笔 2021-04-11 23:02:05 +08:00
MrZ626
649df9be49 修复催促准备音效在玩家准备后也会播放 2021-04-11 21:50:18 +08:00
MrZ626
4e49c1f80d 修复进游戏场景前收到部分socket消息会报错 2021-04-11 21:38:16 +08:00
MrZ626
41eda72394 更新0.14.3的日志和版本号 2021-04-11 21:04:01 +08:00
MrZ626
8a49398740 修正说明书的错别字 2021-04-11 20:52:00 +08:00
MrZ626
6fbec2b298 自动登录时机修改为ws-app连接成功并且版本是最新 2021-04-11 20:43:29 +08:00
MrZ626
15d8bbead9 文本框控件不再有新消息提示音 2021-04-11 20:42:45 +08:00
MrZ626
f2d72d70f1 微调玩家准备相关交互 2021-04-11 20:42:24 +08:00
MrZ626
0bcfd10a9d 修复test场景触屏点击报错 2021-04-11 20:23:16 +08:00
MrZ626
324b4f1b38 进入联网菜单时获取授权操作的锁改为连接成功后释放 2021-04-11 20:16:47 +08:00
MrZ626
27f11db7f4 注册成功后自动返回主菜单 2021-04-11 16:09:48 +08:00
MrZ626
0c734c5351 更新赞助名单 2021-04-11 15:31:58 +08:00
MrZ626
48da6a84a6 进房固定1.26秒cd 2021-04-11 14:26:23 +08:00
MrZ626
21cb2657ca 整理代码 2021-04-11 14:22:51 +08:00
MrZ626
b7ee5e771e 完善0.14.2更新日志 2021-04-11 13:55:36 +08:00
MrZ626
4967782464 减少一个ws库debug开启后可能输出的信息 2021-04-11 13:37:23 +08:00
MrZ626
29582469d2 成功登录后不再尝试清除登录界面的输入框 2021-04-11 13:36:57 +08:00
MrZ626
18c1c9c69a 重新启用注册菜单 2021-04-11 13:36:04 +08:00
MrZ626
ed3521cc53 添加0.14.2版本号和版本说明 2021-04-11 02:23:14 +08:00
MrZ626
4795d77e84 整理代码(远程玩家录像播放) 2021-04-11 02:19:02 +08:00
MrZ626
e0c594c402 攻击特效从全局改为玩家设置项一部分 2021-04-11 02:18:01 +08:00
MrZ626
5f02042124 微调联网游戏房间内ui 2021-04-11 01:57:03 +08:00
MrZ626
4b09023b21 修改词典的techmino词条,加上联网功能说明 2021-04-11 01:52:45 +08:00
MrZ626
320197198b 整理代码 2021-04-11 01:50:52 +08:00
MrZ626
d31423d91e 删除马拉松模式忘了删的测试代码 2021-04-10 23:00:23 +08:00
MrZ626
23bb6ac486 对战传输的玩家配置信息格式简化和修复一个问题(未使用所以从未触发) 2021-04-10 22:24:38 +08:00
MrZ626
7da178c5ec 减少联网玩家传输的设置项 2021-04-10 22:14:19 +08:00
MrZ626
1fe9d2598b 联网推进(修复尝试保存用户信息时错误) 2021-04-10 21:07:26 +08:00
MrZ626
9f56948f47 移除进入已经开始游戏的房间时弹出的提示 2021-04-10 18:33:42 +08:00
MrZ626
4e2822eb0a 修复创建房间失败问题(打错房间类型),微调房间内ui 2021-04-10 17:05:45 +08:00
MrZ626
54697c44de VERSION改为全局table并包含版本名称 2021-04-10 16:56:27 +08:00
MrZ626
b757055525 点击联网游戏时无网络的提示更加清晰 2021-04-10 16:51:21 +08:00
MrZ626
906211f0f5 更改版本号为0.14.1 2021-04-10 16:34:38 +08:00
MrZ626
05808e4587 整理代码,准备缓存用户信息相关功能 2021-04-10 16:18:47 +08:00
MrZ626
0b685cc9a2 更换新的服务器域名 2021-04-10 15:40:28 +08:00
MrZ626
a9985fec2c 增加联网对战模式的垃圾行上涨速度,添加0.14.1更新说明 2021-04-10 02:57:45 +08:00
MrZ626
315237d0fc 限制客户端一般只能开单挑房,电脑用户可以开多人房,特殊电脑用户可以开更大的房 2021-04-10 02:48:51 +08:00
MrZ626
3015db94be 调整版本更新说明 2021-04-09 23:38:06 +08:00
MrZ626
6ac3943043 联网对战攻击缓冲2倍速 2021-04-09 23:26:33 +08:00
MrZ626
c9a7f825de 修复退出对战房间时机不当 2021-04-09 23:10:41 +08:00
MrZ626
27c1925021 加快对手录像滞后之后的播放速度 2021-04-09 23:03:31 +08:00
MrZ626
2332d85434 修复房间选择界面光标越界 2021-04-09 22:47:40 +08:00
MrZ626
e8650525b2 调整主线程不同模块刷新顺序 2021-04-09 22:07:54 +08:00
MrZ626
ea882e9611 退出登录按钮添加再次确认提示 2021-04-09 19:43:52 +08:00
MrZ626
e46a28681d 修复ws库分包消息解析错误 2021-04-09 19:35:18 +08:00
MrZ626
48ce3a3d8f 添加退出登录按钮 2021-04-09 17:34:22 +08:00
MrZ626
f7fa8d0758 修改联网对战未开局时的ui 2021-04-09 16:14:57 +08:00
MrZ626
2d1094a8aa 联网对战准备按钮颜色会变化 2021-04-09 16:13:51 +08:00
MrZ626
ff6b7d982b Update lang_sp.lua
Co-authored-by: MrFaq2018 <43487121+MrFaq2018@users.noreply.github.com>
2021-04-09 12:28:41 +08:00
MrZ626
4c3219688b 整理代码,修复一些联网问题 2021-04-09 02:27:16 +08:00
MrZ626
2b723bd094 删除/修改部分日志信息 2021-04-09 01:58:33 +08:00
MrZ626
de53ee09e3 删除自定义游戏的target设置项 2021-04-09 01:58:05 +08:00
MrZ626
745dd5ede0 显示房间的开始状态,客户端也不允许加入已经开始游戏的房间 2021-04-09 01:19:04 +08:00
MrZ626
ca267fd565 大改联网的lock子模块,大改对战的玩家数据结构,重做联网对战准备界面 2021-04-08 23:43:10 +08:00
MrZ626
2bdbc4d792 更改准备按钮文本 2021-04-08 23:28:26 +08:00
MrZ626
bdf1ce640c 联网推进(修改玩家退出机制,部分联网命令增加超时时间) 2021-04-08 22:25:08 +08:00
MrZ626
8a1a3b971f 给一些网络操作加5秒超时 2021-04-08 20:45:36 +08:00
MrZ626
8a9adb5c98 将一些游戏相关socket消息处理移至场景外 2021-04-08 18:19:19 +08:00
MrZ626
23d6444a54 修复控件系统和hide属性相关的一个致命bug 2021-04-08 17:44:07 +08:00
MrZ626
2a098a9445 整理代码,调整textBox控件机制 2021-04-08 15:27:01 +08:00
MrZ626
1e22364429 允许玩家取消准备 2021-04-08 15:09:05 +08:00
MrZ626
c65eff0de8 修复一个联网小问题 2021-04-08 14:55:23 +08:00
MrZ626
4ea26cfa32 整理代码,添加设置方块初始方向动画 2021-04-08 14:55:04 +08:00
MrZ626
f3f63454d3 联网推进,整理代码 2021-04-08 14:00:15 +08:00
MrZ626
194bd8085f 增加联网游戏击杀对手判定和音效 2021-04-08 01:42:58 +08:00
MrZ626
52e9dac9ee 删除一行测试用代码 2021-04-08 01:31:21 +08:00
MrZ626
9eafdbf741 玩家死亡后插入空操作保证别人看到的自己能保持更新一段时间 2021-04-08 01:29:45 +08:00
MrZ626
3901b079d7 模式文件支持多音乐随机播放,在对战模式中试用 2021-04-07 19:06:27 +08:00
MrZ626
5529f7588c 修复联网小问题:收到攻击信息来源读取错误 2021-04-07 17:25:07 +08:00
MrZ626
0271b0501b 修复联网小问题:退出房间检测不到,攻击信息来源读取错误 2021-04-07 16:53:10 +08:00
MrZ626
32ec6d6be7 整理代码,微调房间列表ui,缩短创房冷却时间 2021-04-07 14:59:58 +08:00
MrZ626
110c68f1e0 Merge branch 'wstest_3_28' into main 2021-04-07 09:39:21 +08:00
MrZ626
e42a0102c2 0.14.0的更新日志 2021-04-07 09:34:42 +08:00
MrZ626
ae8e8825b7 版本号改为0.14.0 2021-04-07 09:22:44 +08:00
MrZ626
c287008fc6 中文增加几个tip 2021-04-07 08:57:23 +08:00
MrZ626
c245c076f9 修复错解析服务器发送的玩家信息 2021-04-06 15:41:37 +08:00
MrZ626
c6db6834e9 联网推进(用户名相关*2) 2021-04-06 15:26:59 +08:00
MrZ626
9fdb50d12a 联网推进(用户名相关) 2021-04-06 15:23:45 +08:00
MrZ626
65faa84351 整理table扩展模块代码 2021-04-06 15:20:02 +08:00
MrZ626
c2cfb709bb 联网推进(整理代码) 2021-04-06 15:02:52 +08:00
MrZ626
202559211c 修改全局结构体变量USER的成员名 2021-04-06 14:53:52 +08:00
MrZ626
24e97e10c8 联网推进(修改房间内用户信息相关代码) 2021-04-06 14:47:29 +08:00
MrZ626
677456456d 改正一处临时变量没有local 2021-04-06 13:05:51 +08:00
MrZ626
708de33603 增强点击特效 2021-04-06 12:59:10 +08:00
MrZ626
5405244e4b ws库增加debug模式变量(不影响性能) 2021-04-06 01:15:14 +08:00
MrZ626
9c12048964 联网推进(修改增减玩家相关) 2021-04-06 01:08:18 +08:00
MrZ626
3b5d21fcd4 整理代码 2021-04-06 00:43:10 +08:00
MrZ626
eb15bec707 联网推进 2021-04-06 00:22:26 +08:00
MrZ626
e9fd74ef5d 继续完善联网,调整玩家数据初始化过程 2021-04-05 23:31:39 +08:00
MrZ626
d4a29db051 table扩展模块添加clear方法 2021-04-05 23:28:54 +08:00
MrZ626
27075d1596 注释掉一些测试用代码 2021-04-05 21:42:11 +08:00
MrZ626
56bbd269c9 换新准备和录像流传输的代码 2021-04-05 21:41:59 +08:00
MrZ626
046a41177f 继续推进联网,实现接入stream和老代码的更新 2021-04-05 20:49:17 +08:00
MrZ626
14302d0106 继续跟进联网部分 2021-04-05 01:50:15 +08:00
MrZ626
68366bf9a3 微调房间列表ui 2021-04-05 00:50:14 +08:00
MrZ626
7e65a81d31 微调语言文件 2021-04-04 01:45:10 +08:00
MrZ626
5268ad041f 整理代码,配合修改一个联网命令类型,修改联网相关场景背景 2021-04-04 01:36:43 +08:00
MrZ626
7d325bd0db 调整ws错误消息显示,整理翻译文本 2021-04-03 23:00:08 +08:00
MrZ626
f6d0dd2d0f 别踩白块小程序增加双押功能,添加两个有双押的模式 2021-04-03 16:56:40 +08:00
MrZ626
5fc3dff2d5 调整自定义场地的ui,可以看到鼠标不同按键对应画笔颜色 2021-04-03 16:25:21 +08:00
MrZ626
18461e1e47 修复小程序15p时间显示颜色不对 2021-04-03 15:41:15 +08:00
MrZ626
7add4d358e 调整徽章图标 2021-04-03 15:41:12 +08:00
MrZ626
c1dbc494ae 整理代码 2021-04-03 15:18:03 +08:00
MrZ626
409b5b8577 调整中文词典一个玩家介绍(本人要求) 2021-04-03 14:39:33 +08:00
MrZ626
4548730df2 整理master_ex代码,修复结束前分数上限错误 2021-04-03 01:12:32 +08:00
MrZ626
4170965c64 增加mesType,新的对战用消息格式(未完成,待测试) 2021-04-03 00:54:29 +08:00
MrZ626
1f8895257d 整理代码 2021-04-03 00:49:22 +08:00
MrZ626
7286d4ffe0 net_game场景的playerData变量改为全局PLY_NET 2021-04-03 00:47:23 +08:00
MrZ626
2f2e4f389f 修复马拉松目标行数错误 2021-04-03 00:18:01 +08:00
MrZ626
ad47797467 修复小程序ten以fast模式结束后新开一局死亡位置点不了 2021-04-02 23:37:30 +08:00
MrZ626
ed66e69e7c 改回部分测试代码,可以进房间,准备修改房间内命令 2021-04-01 20:11:59 +08:00
MrZ626
81fa257915 混战模式第二名特殊BGM取消 2021-04-01 16:46:19 +08:00
MrZ626
0bd6006d70 新增愚人节主题 2021-04-01 16:46:19 +08:00
MrZ626
81a0dd4a5c 新背景:blockrain 2021-04-01 15:54:58 +08:00
MrZ626
78b7dfcc36 整理代码,部分协程创建/执行改用wrap更加简洁 2021-04-01 14:47:54 +08:00
MrZ626
5d728573cd 减少连续报错限制次数 2021-04-01 12:42:28 +08:00
MrZ626
881769b433 添加naki立绘,整理人物相关的图片文件名 2021-04-01 12:36:55 +08:00
MrZ626
dfae6a686c 整理代码 2021-04-01 12:31:11 +08:00
MrZ626
5e0d640c2f 大改websocket模块的线程部分,优化逻辑和操作安全。支持多帧数据(需要测试) 2021-04-01 02:53:11 +08:00
MrZ626
a7133e92d8 修复房间列表R键刷新问题和noRoom文本不对 2021-04-01 02:42:58 +08:00
MrZ626
027e16f676 词典支持滚轮和pgup/pgdown快速翻页 2021-03-31 22:48:15 +08:00
MrZ626
53607f6fe7 完善TABLE扩展模块的注释 2021-03-31 21:38:09 +08:00
MrZ626
4a9066b1cb 增加刷新房间的动画提示 2021-03-30 15:37:25 +08:00
MrZ626
23c0c63c6a 修改刷新房间相关代码 2021-03-30 14:55:46 +08:00
MrZ626
20f031fcb4 修复ws模块有一个握手错误会导致报错 2021-03-30 14:51:28 +08:00
MrZ626
a1c44bab40 NET里的上下锁和parse改为内部函数,parse能接受服务器更多类型的消息 2021-03-30 14:20:07 +08:00
MrZ626
38a91ce351 修复两处WS.send使用错误,添加NET.parse函数用于统一过滤并打印错误 2021-03-30 13:49:36 +08:00
MrZ626
0e4f04d091 增加ws状态显示alert的时间 2021-03-30 13:48:40 +08:00
MrZ626
ef64e0f6ef 整理网络和用户相关代码 2021-03-30 12:46:58 +08:00
MrZ626
1af58efad5 优化几个unpack调用 2021-03-30 12:12:09 +08:00
MrZ626
e741ac0a98 增加一些tip 2021-03-30 12:03:00 +08:00
MrZ626
ec63618bea 整理代码,适配新的玩家信息拉取机制,修改玩家数据保存方式 2021-03-30 12:02:51 +08:00
MrZ626
0efdb7dc33 调整进房间任务锁机制,修复一个请求参数名写错 2021-03-30 10:46:23 +08:00
MrZ626
101636a60a ws库再升级 2021-03-30 01:36:25 +08:00
MrZ626
306b627ef8 ws关闭消息的解析代码升级并归入NET 2021-03-30 01:06:53 +08:00
MrZ626
d601aad274 修复ws库一个长消息解码错误 2021-03-30 01:03:58 +08:00
MrZ626
6b0f60d859 优化场地绘制交互 2021-03-29 18:10:19 +08:00
MrZ626
7c2ab421e9 修复登录流程的一个问题 2021-03-29 15:29:42 +08:00
MrZ626
d37802185b NET添加操作锁保证任务唯一,应用给部分操作 2021-03-29 15:16:23 +08:00
MrZ626
d1e074c1ca 整理代码,实现ws-app部分功能,增强ws-user 2021-03-29 14:11:34 +08:00
MrZ626
a439d55bf8 整理代码 2021-03-29 14:07:37 +08:00
MrZ626
1ad3acb5a5 房间列表场景的rooms变量移入NET,改名roomList(用于全局读写) 2021-03-29 14:00:31 +08:00
MrZ626
3001a60ee0 SCN.back会先检测是否正在切换场景 2021-03-29 13:58:33 +08:00
MrZ626
aad6dcb269 ws类加入发送timer并修改读取方法,更清晰的ws状态展示 2021-03-29 12:29:52 +08:00
MrZ626
ee02013fa5 PLAYERS.alive拿出来作为单独变量 2021-03-29 11:40:36 +08:00
MrZ626
c0736132b1 整理代码 2021-03-29 11:21:16 +08:00
MrZ626
fa8493fd3e 修复load完忘了启动ws-play的task 2021-03-29 11:12:35 +08:00
MrZ626
209038adb2 主菜单不再禁止自动自动重复按键 2021-03-29 11:12:13 +08:00
MrZ626
4dad8500bc 修复ws状态显示的alertTimer打错方法名 2021-03-29 11:11:45 +08:00
MrZ626
6cffe74f36 玩家类所有方法改用冒号和self 2021-03-29 01:15:17 +08:00
MrZ626
0233adc184 拉取ws消息更不容易爆炸 2021-03-29 01:07:00 +08:00
MrZ626
ccbe7646da ws模块增加两个计时器用来显示状态,增加alert方法 2021-03-29 01:04:09 +08:00
MrZ626
5d456dda67 修复TASK模块在协程报错后跳过删除task代码导致在错误界面连续爆炸 2021-03-29 00:37:59 +08:00
MrZ626
42f251de21 改正中文词典错字 2021-03-28 22:17:53 +08:00
MrZ626
f25c4e1423 ws库支持continue的opcode
Co-authored-by: flaribbit <1149761294@qq.com>
2021-03-28 22:13:23 +08:00
MrZ626
4222fff2e3 把所有网络操作抽象到NET中 2021-03-28 21:08:15 +08:00
MrZ626
35ac6eacbc LOGIN变量移至NET内 2021-03-28 20:15:36 +08:00
MrZ626
e6becff209 ws-user过滤非json信息 2021-03-28 16:08:25 +08:00
MrZ626
d0b797d6bd 修复主菜单角落三个按钮按不了 2021-03-28 15:45:18 +08:00
MrZ626
014ae84983 不再错误处理pong消息 2021-03-28 15:16:47 +08:00
MrZ626
2aeb8b5dea 修复ws库返回的op类型 2021-03-28 11:32:00 +08:00
MrZ626
ad7feed5bf 尝试启用ws-play 2021-03-28 03:42:00 +08:00
MrZ626
411d4dc1b3 修复ws连接后被服务器断开时信息解析错误 2021-03-28 03:38:48 +08:00
MrZ626
467eee308f 修复ws连接失败时content-length解析错误 2021-03-28 03:36:16 +08:00
MrZ626
b740072209 pong动画 2021-03-28 03:35:55 +08:00
MrZ626
d34627fab6 整理网络相关全局变量放入NET,删除WSCONN,调整进入联网菜单的逻辑 2021-03-28 03:35:42 +08:00
MrZ626
0cc6840506 添加一个联网相关要用的文本 2021-03-28 02:38:13 +08:00
MrZ626
d2d9781cfa Merge branch 'ws_test' into main 2021-03-28 02:18:58 +08:00
MrZ626
af710acf9e 登录逻辑做好 2021-03-28 02:02:12 +08:00
MrZ626
62f3a834dc 主菜单登录按钮逻辑改新 2021-03-28 01:58:41 +08:00
MrZ626
53b68c6e0b 改正翻译文本错误 2021-03-28 01:36:49 +08:00
MrZ626
a195b89a71 修复打错字 2021-03-28 01:14:41 +08:00
MrZ626
00d00880ed 修复半隐模式目标行数不对 2021-03-28 01:00:40 +08:00
MrZ626
2f8f272894 登录界面问题修复 2021-03-28 00:53:37 +08:00
MrZ626
4207d1b03f 加载时连接ws-app 2021-03-28 00:53:37 +08:00
MrZ626
73c5dc56d3 完成登录操作 2021-03-27 23:51:01 +08:00
MrZ626
8891367791 基本完成app和user的ws,加载完成时连接更多ws 2021-03-27 23:50:37 +08:00
MrZ626
8ca05bbb43 ws状态只在debug模式显示 2021-03-27 22:43:45 +08:00
MrZ626
0e14db9f0b 小程序ten增加15以上格子效果 2021-03-27 22:38:27 +08:00
MrZ626
fa7bbd86b9 ws-app能接公告了 2021-03-27 22:37:36 +08:00
MrZ626
86a696ad15 全局变量LATEST_VERSION改为ALLOW_ONLINE,ws-app能接收版本信息 2021-03-27 22:16:38 +08:00
MrZ626
783defbbed 连接服务器改为加载完成的时候 2021-03-27 22:15:14 +08:00
MrZ626
01f779ef37 ws连接失败输出错误信息 2021-03-27 22:06:24 +08:00
MrZ626
29af52c72e 修复连接成功会爆炸 2021-03-27 22:04:56 +08:00
MrZ626
a3ff9dacc8 修复一个错误 2021-03-27 21:11:41 +08:00
MrZ626
c0155ad275 防爆 2021-03-27 21:00:29 +08:00
MrZ626
ad20c62c73 test1 2021-03-27 19:28:11 +08:00
MrZ626
88281c57cd 整理代码 2021-03-27 19:27:45 +08:00
MrZ626
cb82489f33 WS连接失败后会等一秒,WS-app连接的body修改 2021-03-27 19:23:25 +08:00
MrZ626
66c16329ac 整理代码,修复一些小错误 2021-03-27 19:19:27 +08:00
MrZ626
c092c099be 整理代码 2021-03-27 16:03:33 +08:00
MrZ626
307c2ded5a 调整主菜单快速开始按钮文本 2021-03-27 15:00:10 +08:00
MrZ626
00718b4293 调整主菜单两个按钮的颜色 2021-03-27 14:58:52 +08:00
MrZ626
7222ddd591 展示用的tetr.io改为大写,修改一个tip错误 2021-03-27 14:56:35 +08:00
MrZ626
85db878943 修复窗口比例非默认时staff场景弹幕范围不对 2021-03-27 13:34:32 +08:00
MrZ626
3d33b0938b 主菜单ui再改,帮助菜单改名关于 2021-03-27 13:27:26 +08:00
MrZ626
e7d2897582 再修改词典的名称 2021-03-27 12:12:47 +08:00
MrZ626
4193c1358b 修改词典的外文名称 2021-03-27 01:44:35 +08:00
MrZ626
9cf3f58dcb 再修改主菜单ui 2021-03-27 01:44:04 +08:00
MrZ626
abb98f88af 修复混战ui位置不当 2021-03-26 22:29:30 +08:00
MrZ626
f17c597d7d 微调主菜单ui,修改进cmd的方法和触屏触发区域 2021-03-26 22:29:26 +08:00
MrZ626
ea78673811 修复music场景没有bgm会报错 2021-03-26 19:56:35 +08:00
MrZ626
9d8478a9c0 主菜单ui再重做,词典入口移至主菜单 2021-03-26 19:45:35 +08:00
MrZ626
0113cfb78e 移除词典的小程序入口 2021-03-26 19:32:26 +08:00
MrZ626
612850efb6 音乐室和音效室可以互相快速切换 2021-03-26 19:31:17 +08:00
MrZ626
b0eac8af63 button和key控件可以手动设置留白距离 2021-03-26 18:02:28 +08:00
MrZ626
b4c781b7fd 测试场景改名并且加入一些功能 2021-03-26 16:17:17 +08:00
MrZ626
b647b44c95 修复没开场地晃动时spin报错 2021-03-26 15:47:38 +08:00
MrZ626
6f9a72557d cmd添加applet命令,准备从词典移除小程序入口 2021-03-26 11:46:48 +08:00
MrZ626
86c8a45e01 修复key控件默认对齐格式错误;对齐模式错误时使用居中 2021-03-26 11:42:16 +08:00
MrZ626
d9dd692fa9 主菜单布局再升级,一些文本重新等待翻译 2021-03-26 10:07:04 +08:00
MrZ626
d735bcdc8b debug调整字号step改为5 2021-03-26 09:38:41 +08:00
MrZ626
00234fa52a button和key控件支持选择文本对齐方式 2021-03-26 09:38:23 +08:00
MrZ626
1878558392 再微调主界面布局 2021-03-25 23:38:45 +08:00
MrZ626
86c45e39f6 主菜单ui微调 2021-03-25 22:01:04 +08:00
MrZ626
7cb3797624 space背景略微暗一点 2021-03-25 22:00:51 +08:00
MrZ626
2473a59858 减慢回合制模式ai操作速度 2021-03-25 20:56:45 +08:00
MrZ626
8de29b0a90 软降不再使场地旋转,修复旋转系统的错误修改,整理代码 2021-03-25 20:49:00 +08:00
MrZ626
1f115e6836 改正三个特殊40行条件写错 2021-03-25 19:22:00 +08:00
MrZ626
347729a26e 调整场地晃动强度 2021-03-25 18:09:37 +08:00
MrZ626
fac14772f5 整理代码 2021-03-25 16:43:47 +08:00
MrZ626
1f2652cc5e 场地晃动加入旋转分量 2021-03-25 15:49:08 +08:00
MrZ626
f7ece80bec 玩家新增getCenterX方法,移除SFX.fieldPlay 2021-03-25 15:28:15 +08:00
MrZ626
7d5059c6ca 整理代码,scissor换用stencil,为旋转场地做准备 2021-03-25 14:51:57 +08:00
MrZ626
742e9419be 整理代码,goto标签名字统一格式方便理解 2021-03-25 12:50:33 +08:00
MrZ626
053a5a55e6 整理代码,删掉三处goto 2021-03-25 11:10:17 +08:00
MrZ626
390d2a42b8 整理代码,删掉多个goto 2021-03-25 02:15:49 +08:00
MrZ626
ea0d699e1b 更新存档时清除GM模式成绩 2021-03-24 18:09:17 +08:00
MrZ626
d83122731b 整理序列生成器代码 2021-03-24 17:46:46 +08:00
MrZ626
3399c51d25 删除levelName文字对象,直接和modeName连在一起 2021-03-24 15:05:42 +08:00
MrZ626
6663915149 再调整CC的调用 2021-03-24 14:41:25 +08:00
MrZ626
2fa968a923 升级存档会自动重启了 2021-03-24 14:40:32 +08:00
MrZ626
862e6c3e7b 整理代码 2021-03-24 14:40:25 +08:00
MrZ626
65db835cb5 修复fixed序列不能用 2021-03-24 01:10:57 +08:00
MrZ626
9f8b8d2596 修复报错提示的场景显示不正确 2021-03-24 00:54:34 +08:00
MrZ626
08d69bf1e7 修复触屏设备智能画笔会爆炸 2021-03-24 00:48:58 +08:00
MrZ626
a20fc4d9d1 修复刚安装就用简洁模式玩会报错(修改成绩比较逻辑) 2021-03-23 23:41:33 +08:00
MrZ626
7ff6bdbaf6 微调staff名单 2021-03-23 21:31:04 +08:00
MrZ626
374f2ab779 modeData地位提升,模式环境变量target移入其中,大规模整理代码,可读性增强 2021-03-23 19:11:05 +08:00
MrZ626
ac8a41004b 修改锁定音效播放的条件 2021-03-23 16:54:14 +08:00
MrZ626
b3418e8d90 修改GM模式的名称和段位名以及修改连带内容,加高成绩上限,修复一个旧版本存档转换错误 2021-03-23 14:40:42 +08:00
MrZ626
078d8bd4e5 方块贴图改回不抗锯齿 2021-03-23 14:10:42 +08:00
MrZ626
67912e18d0 新增BGM: hang out(用于两个小程序) 2021-03-22 23:18:39 +08:00
MrZ626
38c4405c16 BGM:mXmas改名xmas 2021-03-22 23:16:48 +08:00
MrZ626
2cb5b54d33 整理代码,增加一些注释 2021-03-22 21:37:24 +08:00
MrZ626
13f1ae7c6f 移除一段goto 2021-03-22 21:19:48 +08:00
MrZ626
55bba313fe 修复无信息报错抓不到 2021-03-22 19:55:43 +08:00
MrZ626
d168304a6d 整理代码,texture文件添加注释,移除一个素材创建 2021-03-22 16:06:30 +08:00
MrZ626
d018b9fba0 补充两个wiki的词条 2021-03-22 14:20:27 +08:00
MrZ626
cf81177ed2 词典不再大小写敏感 2021-03-22 14:20:22 +08:00
MrZ626
1b66ce9aa3 调整中文tip 2021-03-21 11:48:22 +08:00
MrZ626
0d45d88dbd 再整理场地绘制代码 2021-03-20 17:07:59 +08:00
MrZ626
7692556d09 整理代码 2021-03-20 17:02:03 +08:00
MrZ626
c08a13b2d1 优化绘制场地的代码 2021-03-20 17:00:41 +08:00
MrZ626
706e8ef130 优化极简检测代码 2021-03-20 16:27:43 +08:00
MrZ626
b326ccaaee 修复开启phyHold后hold时操作数重置没执行 2021-03-20 16:17:26 +08:00
MrZ626
3c14351a5b 添加一个真·纯随机序列模式 2021-03-20 14:38:52 +08:00
MrZ626
a59362b687 修复backfire模式成绩记录错误,ui微调 2021-03-20 14:34:22 +08:00
MrZ626
fab019a34c 整理代码 2021-03-20 12:24:55 +08:00
MrZ626
36712e5486 修改deepdrop的译名 2021-03-20 12:24:50 +08:00
MrZ626
0e5c519363 赞助名单移至staff界面并添加动画 2021-03-20 02:40:22 +08:00
MrZ626
f1ed03b77a 根据本人意愿从staff和词典暂时性去掉一个人(或部分说明) 2021-03-20 02:17:52 +08:00
MrZ626
76b44307ca 微调中英文本 2021-03-20 02:07:05 +08:00
MrZ626
563b9eeb8c 改回个别英文语言文件的翻译 2021-03-19 23:26:59 +08:00
MrZ626
90621a1dd9 艺术性优化一段goto很多的小游戏代码 2021-03-19 23:15:15 +08:00
MrZ626
2fb181d391 再优化玩家的cancel方法 2021-03-19 21:19:10 +08:00
Imple Lee
2753fc3505 remove a goto 2021-03-19 20:09:57 +08:00
Imple Lee
c1765423a6 remove a goto 2021-03-19 20:06:20 +08:00
MrZ626
deb104c341 修正英文翻译的语法错误 2021-03-19 19:59:27 +08:00
Neubulae
e0d844d35e redo (#57)
* redo

不如说小改(…

总觉得我甚至可能更愿意推翻重做 不过还是算了

* Update lang_en.lua

* Create lang_en.lua
2021-03-19 19:55:31 +08:00
MrZ626
eb8f2c4eba changed 2 gotos 2021-03-19 19:06:17 +08:00
Imple Lee
92afc9d8f0 remove a goto 2021-03-19 19:05:35 +08:00
MrZ626
5fd0bb034e 整理代码,调整谜题的提示 2021-03-19 18:20:49 +08:00
MrZ626
bea124c33e 修复文本框控件有新消息时颜色错误 2021-03-19 18:05:21 +08:00
MrZ626
0ffef5a767 换一个欺骗语言服务器的办法 2021-03-19 17:39:49 +08:00
MrZ626
5000be3263 intro场景NOGAME铁门改为启动时弹窗提示重启;不再接受v0.13.2前的设置(自动删除重置) 2021-03-19 17:33:20 +08:00
MrZ626
edd903c0df 修改一些报错信息格式,微调报错界面ui 2021-03-19 17:30:02 +08:00
MrZ626
90b3dd2c19 微调yygq语言防沉迷相关文本 2021-03-19 13:14:45 +08:00
MrZ626
20cab9001b 再优化报错机制,简化代码 2021-03-19 13:14:18 +08:00
MrZ626
0e0d88d755 修复部分启动瞬间报错会导致闪退 2021-03-19 01:24:35 +08:00
MrZ626
6aed6a0926 修改cmd中#命令的说明 2021-03-18 22:10:52 +08:00
MrZ626
e67929857f 更新几条中文tip 2021-03-18 22:10:34 +08:00
MrZ626
e82c6322a0 整理代码,改正时间字符串格式少删个字母 2021-03-18 20:54:35 +08:00
MrZ626
73a1b860d5 改回默认全屏,电脑默认关闭每帧discard 2021-03-18 20:53:53 +08:00
MrZ626
d301b99738 更新中英词典对effect的说明,微调中文词典两个词条 2021-03-18 20:38:29 +08:00
MrZ626
37a659ab30 微调初始化主题的时机 2021-03-18 20:37:30 +08:00
MrZ626
7bcbb4c5b9 cmd不用考虑输入焦点问题了 2021-03-18 20:37:08 +08:00
MrZ626
f74a421f64 微调log文件和录像文件中的日期格式 2021-03-18 13:02:56 +08:00
MrZ626
5f633efa59 THEME做成独立模块 2021-03-18 12:59:00 +08:00
MrZ626
d9a9747901 升级cmd里设置bg和bgm的命令 2021-03-18 12:51:30 +08:00
MrZ626
756ca31319 修复报错界面的一个错误 2021-03-18 12:50:26 +08:00
MrZ626
601591c7db BGM和BG模块设置成功(包括重复)返回true 2021-03-18 12:43:32 +08:00
MrZ626
0cca8f2c83 cmd新增demo命令 2021-03-18 11:12:53 +08:00
MrZ626
d5043446d9 cmd新增setbg命令 2021-03-18 11:12:18 +08:00
MrZ626
49dc6f90bc BG模块不再用LOG.print报背景缺失(解耦) 2021-03-18 11:11:37 +08:00
MrZ626
d803802b43 修改报错日志格式 2021-03-17 21:19:20 +08:00
MrZ626
8e382f104b 修改timeStr输出的时间字符串格式 2021-03-17 21:08:02 +08:00
MrZ626
b7f8162f5f cmd改正print用法说明,删除shutdown命令 2021-03-17 21:07:47 +08:00
MrZ626
6230510b2e cmd新增print命令可以输出一整个文件的信息 2021-03-17 20:06:02 +08:00
MrZ626
f50c9a6b2d 不再每次启动时强制删除存档目录内所有非文件夹内容 2021-03-17 20:05:28 +08:00
MrZ626
4cdafcccd2 报错时会把traceback信息保存到日志文件便于调试 2021-03-17 20:04:47 +08:00
MrZ626
42015f846f 左键按下时光标显示会变化 2021-03-17 15:00:15 +08:00
MrZ626
17ed24de8a 修复触屏和键盘用不了智能画笔 2021-03-17 14:53:59 +08:00
MrZ626
03c6cf01de 更新中文词典的踢墙和SRS词条 2021-03-17 14:05:11 +08:00
MrZ626
7ec1688825 整理代码,微调debug模式输出点击位置的格式和widget模块的一个方法名 2021-03-17 13:51:49 +08:00
MrZ626
210e602057 cmd新增复制和剪切 2021-03-16 21:16:17 +08:00
MrZ626
136341feef cmd新增tab补全和粘贴 2021-03-16 21:04:11 +08:00
MrZ626
a71ceefc3f 修改backfire模式的说明 2021-03-16 20:39:01 +08:00
MrZ626
2cfd373463 微调生存模式下落速度 2021-03-16 20:02:09 +08:00
MrZ626
416534b99c 调整四个backfire模式的各种参数 2021-03-16 20:02:01 +08:00
MrZ626
78ada2809e 调整blackhole背景 2021-03-16 19:13:19 +08:00
MrZ626
03a1b5ccd4 新模式:backfire 2021-03-16 18:31:44 +08:00
MrZ626
15a24b40de 新BGM:echo 2021-03-16 17:53:46 +08:00
MrZ626
b4111d5ec5 新背景:blackhole 2021-03-16 17:53:46 +08:00
MrZ626
5c1807c5f5 报错时安全起见关闭背景 2021-03-16 17:53:46 +08:00
MrZ626
88f249e301 修复BG.set函数少拦截一个错误 2021-03-16 14:44:41 +08:00
MrZ626
77e9283b95 整理代码 2021-03-16 14:44:12 +08:00
MrZ626
6829ed9308 存档更新机制小升级 2021-03-16 12:29:15 +08:00
MrZ626
9265026e1e 修复物理hold可能会卡死和踢墙测试位置不正确 2021-03-16 12:19:55 +08:00
MrZ626
68d8ed9df0 修复序列生成器不小心用了全局随机函数导致录像不能正确播放,更改序列生成模块名 2021-03-16 12:11:57 +08:00
MrZ626
20da98f597 整理代码 2021-03-16 12:01:03 +08:00
MrZ626
3917bbc61b 补上不同语言的回放标记文本,之前不小心删掉了 2021-03-16 11:22:44 +08:00
MrZ626
87f8c283d2 给部分指令输出上色,新增几个指令的aliases,整理代码 2021-03-16 01:37:35 +08:00
MrZ626
5beec7ea38 调整命令行的del指令 2021-03-16 01:30:20 +08:00
MrZ626
782732278e 报错系统大升级,更不容易闪退并且不会把程序搞死 2021-03-16 01:21:55 +08:00
MrZ626
a728d4427e 增加一点加载cc的防炸措施 2021-03-16 01:21:36 +08:00
MrZ626
00c99eb41e 新增每帧绘制后是否执行discard的全局设置 2021-03-16 01:21:31 +08:00
MrZ626
a3ecfca30b 再修复部分启动时报错报不出来 2021-03-15 22:33:31 +08:00
MrZ626
4ca9d6979e cmd新增del命令,可以手动管理存档了 2021-03-15 22:17:57 +08:00
MrZ626
bbeeb40d6a cmd加入tree命令 2021-03-15 21:48:58 +08:00
MrZ626
e1d52de410 加入c2序列模式,可以在自定义或mod中开启 2021-03-15 20:47:54 +08:00
MrZ626
459bd9ad31 序列生成器改用协程实现,整理代码 2021-03-15 20:42:03 +08:00
MrZ626
7fd8a23f55 整理代码 2021-03-15 13:40:26 +08:00
MrZ626
d84ec529f8 修正词典中c2序列生成器的说明错误 2021-03-15 10:30:49 +08:00
MrZ626
04faf21764 0.13.3 hotfix 2021-03-15 00:49:20 +08:00
MrZ626
9d4aa9187c 微调英文词典对das cut的说明 2021-03-15 00:38:03 +08:00
user670
344f76b705 Update dict_en.lua (#55) 2021-03-15 00:35:10 +08:00
MrZ626
ea64b9e987 再修改中文词典中dascut的说明 2021-03-15 00:02:16 +08:00
MrZ626
ed8a6c1607 微调中文词典中das cut词条的说明 2021-03-14 23:43:05 +08:00
MrZ626
0899560086 修复物理hold的踢墙错误 2021-03-14 23:37:53 +08:00
MrZ626
32b75cbec3 微调两个小程序的返回按钮功能,修复移动端触屏无法退出dropper 2021-03-14 21:38:14 +08:00
MrZ626
3e25f9c1d7 修复加载界面点空白的地方会触发13号按钮 2021-03-14 21:06:21 +08:00
MrZ626
c46fd84767 词典增加物理hold的说明,英文待补充 2021-03-14 21:04:32 +08:00
MrZ626
a2ccff5959 0.13.3: 科技飞跃 2021-03-14 21:02:07 +08:00
MrZ626
c064b8d0f3 修复重开后虚拟按键失效 2021-03-14 20:24:46 +08:00
MrZ626
3484d35b77 微调中文tip 2021-03-14 19:31:59 +08:00
MrZ626
d8a3e1c97a 略微优化智能画笔的行为 2021-03-14 19:11:40 +08:00
MrZ626
7020bbc55d 修复STAT.lastPlay的更新时机不当 2021-03-14 12:47:16 +08:00
MrZ626
56803fa83b 微调评级字母颜色 2021-03-14 01:33:11 +08:00
MrZ626
030956bdb8 修复键盘可以移动焦点到隐藏的按钮上 2021-03-14 01:31:28 +08:00
MrZ626
835690c609 修复hold代码调整后O变形不保留名字和颜色 2021-03-13 15:12:30 +08:00
MrZ626
1d8e2094e0 调整模式地图右侧信息版面透明度 2021-03-13 11:21:16 +08:00
MrZ626
a6389ce4be 优化小程序refl的ui和触屏控制 2021-03-13 11:15:30 +08:00
MrZ626
a22cc09675 优化小程序ten的手感,外框颜色会变化 2021-03-13 00:58:17 +08:00
MrZ626
17c301c775 再次修复cmd的help命令错误 2021-03-12 18:55:53 +08:00
MrZ626
4ad28a324a 智能画笔按钮改成绿色 2021-03-12 16:53:20 +08:00
MrZ626
12254b5849 调整软件锁进入方法 2021-03-12 16:03:24 +08:00
MrZ626
d178140d7d 更新新版关闭软件锁防止不知道方法进不去 2021-03-12 15:45:59 +08:00
MrZ626
2dfbee784d 简化自定义模式高级设置 2021-03-12 15:40:37 +08:00
MrZ626
29844c5716 自定义场地新增智能画笔 2021-03-12 12:15:37 +08:00
MrZ626
392798d7f5 整理代码 2021-03-12 11:26:10 +08:00
MrZ626
666a3bd6ef 修复主菜单esc键没用 2021-03-12 11:23:53 +08:00
MrZ626
159d1e4e57 cmd初始文字增加一个警告 2021-03-12 00:57:10 +08:00
MrZ626
e90515453a 修改游戏启动时立刻进入cmd的方法 2021-03-12 00:56:58 +08:00
MrZ626
7aa38225fe 优化灯笼背景代码,修改背景说明 2021-03-12 00:50:47 +08:00
MrZ626
cfa6b8cd90 修复物理hold的位置测试顺序不正确 2021-03-12 00:41:49 +08:00
MrZ626
2f6d53a88f 更新词典的小程序入口说明 2021-03-12 00:08:08 +08:00
MrZ626
832d222f5d 镜头移动微调,高处更容易看清 2021-03-11 19:13:51 +08:00
MrZ626
00b4a206ab 更改无尽挖掘的BGM 2021-03-11 18:45:04 +08:00
MrZ626
dd07df9ac0 新增小程序polyforge,以及配套BGM: dream和一个白色背景 2021-03-11 18:36:48 +08:00
MrZ626
974f2b823c 整理代码,关闭大量小程序的按键自动重复 2021-03-11 18:33:57 +08:00
MrZ626
2ebf8f5941 新增小程序:reflect 2021-03-11 02:05:38 +08:00
MrZ626
0fc8d864ea 修改uttt的文件名,之前不知道为什么忘了改 2021-03-10 19:20:56 +08:00
MrZ626
28fd42fdd3 cmd中help命令的解析更清晰 2021-03-10 19:20:28 +08:00
MrZ626
e8c471c059 cmd小程序esc键立即切换焦点到输入栏 2021-03-10 13:36:48 +08:00
MrZ626
d9da71723d 主菜单添加几个快捷键 2021-03-10 13:34:27 +08:00
MrZ626
3ca0f6f9af cmd新增stopbgm命令,rst命令有输出了 2021-03-10 12:49:32 +08:00
MrZ626
f45331d019 整理代码 2021-03-10 12:49:28 +08:00
MrZ626
39e18df6e7 小程序cmd添加playbgm命令 2021-03-10 02:16:14 +08:00
MrZ626
6cb5c1a179 删除三个声音模块中不知道什么时候加的没用的东西 2021-03-10 02:15:45 +08:00
MrZ626
db51b68058 把蓝绿添加到staff名单,调整词条内容 2021-03-10 02:02:01 +08:00
MrZ626
f128527039 修复加载中错误会直接闪退 2021-03-10 02:01:58 +08:00
MrZ626
5694316eac 整理代码 2021-03-10 02:01:52 +08:00
MrZ626
7fdc5729d2 修复地图上菱形模式点击判定尺寸错误 2021-03-10 01:13:46 +08:00
MrZ626
fc1f363a8b 调整require的写法 2021-03-10 00:50:08 +08:00
MrZ626
1545cb2154 简化LANG模块的初始化方法 2021-03-10 00:45:10 +08:00
MrZ626
1e58ef93a4 两个模式图标改为代码绘制 2021-03-09 23:38:08 +08:00
MrZ626
d9dd56f6e2 新增doGC工具函数,三个模式图标改为代码绘制 2021-03-09 23:25:40 +08:00
MrZ626
11d7caa6f6 把旋律星萤添加到staff名单 2021-03-09 12:55:13 +08:00
MrZ626
36c5432c65 再修改地图ui和暂停界面rank显示 2021-03-09 12:54:13 +08:00
MrZ626
940e08ea54 微调中文tip 2021-03-09 00:58:20 +08:00
MrZ626
0de1317d2f 地图UI升级,增加模式图标 2021-03-09 00:52:30 +08:00
MrZ626
d2e6fd2dcc 调整一帧加载资源个数 2021-03-08 20:12:24 +08:00
MrZ626
9527d7c0c2 修复cmd的help问题和scrinfo说明语法 2021-03-08 18:51:31 +08:00
MrZ626
c73e07ecaf 词典添加ParticleG 2021-03-08 18:07:59 +08:00
MrZ626
8058a9385a 微调cmd的注释和部分函数说明 2021-03-08 16:21:31 +08:00
MrZ626
44a859296a 调整cmd小程序的ui和部分交互逻辑 2021-03-08 16:21:31 +08:00
MrZ626
057b36bf5b 小程序cmd添加url指令 2021-03-08 16:21:31 +08:00
MrZ626
3ce669442d 初始化退出场景移出scene模块 2021-03-08 16:21:31 +08:00
MrZ626
bb3de2c396 离开加载动画时按住R可以进入命令行 2021-03-08 15:48:44 +08:00
MrZ626
796bd649c2 FESTIVAL变量改名THEME 2021-03-08 14:33:23 +08:00
MrZ626
30a8444840 加载动画交互优化 2021-03-08 12:59:32 +08:00
MrZ626
fc7695a9f3 修复混战模式极限难度没有20G 2021-03-08 12:43:58 +08:00
MrZ626
d1d2def4b0 修复软件锁按方括号和点击鼠标报错 2021-03-08 12:43:22 +08:00
MrZ626
f17a776c14 cmd整理代码,系统log支持颜色,新增rst命令,修改scrinfo说明 2021-03-08 12:21:07 +08:00
MrZ626
f9b2929a64 使用TABLE.reIndex整理代码 2021-03-08 12:19:46 +08:00
MrZ626
22b4924b63 table扩展模块加入reIndex方法 2021-03-08 12:19:46 +08:00
MrZ626
dfba194108 删除screen模块info方法输出的第一行文字说明 2021-03-08 12:19:45 +08:00
MrZ626
a5f3315037 整理cmd代码,用户代码能访问更多东西并且使用保护模式执行可以返回错误,增加一个解谜要素 2021-03-08 10:34:56 +08:00
user670
02051b5413 Changes to the command "festival" (#54)
- festival no longer takes "flag" as a valid argument
- `festival list` is now accepted, displaying a list of available
  festivals
- festival will now prompt usage, rather than complain about an invalid
  festival, on empty args
- added help for this command
2021-03-08 07:26:12 +08:00
MrZ626
74622c377f 强行切换节日代码移入cmd 2021-03-08 02:17:59 +08:00
MrZ626
d034be1aff 整理代码(user670升级的cmd小程序) 2021-03-08 02:07:48 +08:00
user670
df0be2468e A few changes made to the cmd minigame (#52)
* (Attempt to) mod the command minigame. (It seems to have gonne wrong, don't
merge this)

* Fixed my previous commit. Also fixed the bug in fn command.
2021-03-08 01:56:17 +08:00
MrZ626
ce2bf43eab 主菜单机器人不再发出极简错误提示音 2021-03-08 01:42:25 +08:00
MrZ626
f418a22c42 小游戏改名小程序 2021-03-08 01:40:16 +08:00
MrZ626
bcf1c9c7d4 电梯楼层灯可交互,软件锁回归 2021-03-08 01:31:57 +08:00
MrZ626
ca6d3ba9e2 加载动画添加进楼层效果 2021-03-08 00:20:36 +08:00
MrZ626
0aca743e0c staff表微调 2021-03-08 00:20:12 +08:00
MrZ626
c75edd9af8 新增BGM:venus(用于zen) 2021-03-07 23:44:18 +08:00
MrZ626
e3f3c87c30 shell里的版权声明微调 2021-03-07 23:04:39 +08:00
MrZ626
ccdfce9f88 整理代码,修复旋转时向上踢墙扣两点刷新次数 2021-03-07 22:40:48 +08:00
MrZ626
9cd4bd55a1 修复cmd中fn报错 2021-03-07 22:08:03 +08:00
MrZ626
311a11e1df 升级踢墙表初始化代码,修复部分方块按180度报错 2021-03-07 20:36:26 +08:00
MrZ626
db99ed87a0 新增小游戏(确信):cmd 2021-03-07 20:01:46 +08:00
MrZ626
40f9bb28f5 微调textBox控件的clear方法 2021-03-07 20:01:09 +08:00
MrZ626
c1e36b0669 SCR模块print方法改为info方法 2021-03-07 19:49:08 +08:00
MrZ626
cdfe748f08 允许自定义textBox控件的行间距 2021-03-07 19:48:43 +08:00
MrZ626
1c53d0bea5 整理代码 2021-03-07 16:08:08 +08:00
MrZ626
8b445a49b9 删除计算器的秘密数字功能 2021-03-07 16:04:50 +08:00
MrZ626
c68df20847 计算器地位改为小游戏,软件锁功能取消,未来准备与加载动画合并 2021-03-07 15:19:04 +08:00
MrZ626
7509420d72 小游戏dropper的返回按钮样式微调 2021-03-07 15:07:25 +08:00
MrZ626
db539dafd1 增加一个提示ide加载love api的文件,删除一个多余文件,删除安卓的联网库so文件 2021-03-07 13:47:51 +08:00
MrZ626
b842293563 增加一个提示ide加载love api的文件,删除一个多余文件 2021-03-07 13:41:58 +08:00
MrZ626
3818c32d33 Revert "增加一个ignore文件"
This reverts commit 3bf447cb86.
2021-03-07 13:38:51 +08:00
MrZ626
3bf447cb86 增加一个ignore文件 2021-03-07 13:04:32 +08:00
MrZ626
5f14acf1f2 修复词典的小游戏词条显示不全 2021-03-07 12:57:27 +08:00
MrZ626
ab7e0e31f6 新增小游戏dropper 2021-03-07 12:57:27 +08:00
MrZ626
6dee6e5481 小游戏ten增加竞速开关,操作更灵活并且延迟更小 2021-03-07 12:57:27 +08:00
MrZ626
1fba135b4d 小游戏cannon支持鼠标和触屏操作 2021-03-06 21:02:51 +08:00
MrZ626
c7e7198dc6 新增小游戏:cannon 2021-03-06 20:34:02 +08:00
MrZ626
4aae83c7ad 进入词典后焦点自动切换到输入框 2021-03-06 19:25:42 +08:00
MrZ626
cf61df2acb 整理代码 2021-03-06 17:28:17 +08:00
MrZ626
f866ac1778 微调中文tip 2021-03-06 17:24:41 +08:00
MrZ626
ae3338dc20 新增物理hold 2021-03-06 17:24:27 +08:00
MrZ626
4567f19885 不再支持导入旧版本统计信息,修复导入存档提示信息错误 2021-03-06 15:18:06 +08:00
MrZ626
b667b1e19f 再调整更新存档代码,准备大面积删除旧版本存档 2021-03-06 15:13:08 +08:00
MrZ626
53d28c1346 修复一个老存档转换问题 2021-03-06 14:34:40 +08:00
MrZ626
1b34a13321 简化自定义模式选项,移除部分不必要的参数 2021-03-06 13:41:38 +08:00
MrZ626
b370807de1 微调报错界面后门操作 2021-03-06 00:32:45 +08:00
MrZ626
37fa39b5b8 修复CC爆炸 2021-03-06 00:28:22 +08:00
MrZ626
d824b87b17 修补ws模块 2021-03-05 21:07:50 +08:00
MrZ626
0bf4642f10 降低干旱-L的评级要求 2021-03-05 21:07:37 +08:00
MrZ626
49f79068ae 修复加载动画边界看着不正常 2021-03-05 18:27:39 +08:00
MrZ626
34351cb6d4 修复屏幕尺寸不刚好时加载动画会发生奇怪的事情 2021-03-05 18:23:34 +08:00
MrZ626
37520a9634 显示ai计算的下一块位置 2021-03-05 18:06:02 +08:00
MrZ626
9714ba1113 整理代码,保留cc的原始dest数据 2021-03-05 18:06:02 +08:00
Gompyn
b6cf044441 replace goto with repeat...until in cold-clear 2021-03-05 18:06:02 +08:00
MrZ626
bf7fbb1218 微调cc思考流程 2021-03-05 18:06:01 +08:00
MrZ626
ed66f5b467 中文词典加入更多关键词 2021-03-05 18:06:00 +08:00
MrZ626
38f5ec6393 整理代码 2021-03-05 15:31:58 +08:00
MrZ626
15ecee6767 ai协程化 2021-03-05 15:28:43 +08:00
MrZ626
640403866f 修复一个可能是导致CC报错后程序闪退的问题 2021-03-05 13:06:02 +08:00
MrZ626
25efce87dc 几个绘图用函数mXXX模块化 2021-03-05 13:05:59 +08:00
MrZ626
79bc8f9527 优化加载动画的像素字体的生成代码 2021-03-05 10:15:32 +08:00
MrZ626
0043052057 微调加载动画的像素字体 2021-03-05 09:39:17 +08:00
MrZ626
75f1651042 几个table相关函数独立成TABLE模块 2021-03-05 09:31:19 +08:00
MrZ626
b1ca2c8dda 整理全局函数名以及库的require方法 2021-03-05 01:15:09 +08:00
MrZ626
069b547e58 ws库修补 2021-03-05 01:00:22 +08:00
MrZ626
e5136dd2e5 json库会检测有LOG模块再LOG.print 2021-03-05 00:57:28 +08:00
MrZ626
d58b7a9ff1 全新加载动画与资源加载机制 2021-03-04 18:09:47 +08:00
MrZ626
f192e8c993 新增是否为今日第一次启动的标记 2021-03-04 17:54:02 +08:00
MrZ626
2e9260ace5 freshDate函数会返回是否刷新了存档日期 2021-03-04 17:53:38 +08:00
MrZ626
880b48dc5d 日期刷新移至加载完成时而非刚进入游戏 2021-03-04 17:42:26 +08:00
MrZ626
a3c7a8af26 TEXTURE模块新增一套像素数字 2021-03-04 17:04:26 +08:00
MrZ626
088800c769 SKIN.libColor改名为minoColor并且从SKIN模块移到list 2021-03-04 15:14:50 +08:00
MrZ626
ecf899f610 puzzleMark素材初始化移出load过程 2021-03-04 15:14:36 +08:00
MrZ626
6cbd7d19da 0.13.2: 节奏模式 2021-03-03 23:21:09 +08:00
MrZ626
a2f7c5e5ee 修正cc切20G的部分代码(跟上方块对象结构更新) 2021-03-03 22:59:54 +08:00
MrZ626
e236884eeb 调整词典的das打断词条,新增sdf词条 2021-03-03 22:55:18 +08:00
MrZ626
ec6436a43f 游戏设置界面皮肤预览平滑过渡 2021-03-03 22:11:41 +08:00
MrZ626
c8eba1338e lanterns背景的灯笼会往反方向转了 2021-03-03 22:00:50 +08:00
MrZ626
8ce481c427 词典可以调出zDay节日 2021-03-03 17:46:13 +08:00
MrZ626
96346ee454 修复lantern背景灯笼消失时机不正确 2021-03-03 17:45:28 +08:00
MrZ626
d3b22b0447 新增zDay节日与新的主菜单音乐overzero 2021-03-03 17:43:48 +08:00
MrZ626
e9d6778cde 新增灯笼背景 2021-03-03 16:48:25 +08:00
MrZ626
7587d8cafd IMG模块支持加载图片组 2021-03-03 16:38:53 +08:00
MrZ626
b94eed6df8 更新bright_scf皮肤 2021-03-03 15:56:22 +08:00
MrZ626
32b9221b35 ba背景循环播放 2021-03-03 15:07:11 +08:00
MrZ626
1ab9f31e3c 自定义游戏可以调整场地高度 2021-03-03 14:11:55 +08:00
MrZ626
3572bea87c update French translation by Mizu 2021-03-03 08:57:20 +08:00
MrZ626
c0868feb6b badapple换成ogv视频 2021-03-03 00:04:33 +08:00
MrZ626
8cd40cc99a 一行彩蛋代码,移动玩家对象位置使方块永远居中 2021-03-02 21:46:42 +08:00
MrZ626
de24bcbc16 微调一段debug代码 2021-03-02 20:05:52 +08:00
MrZ626
9eee7778a4 修复锁延刷新机制的一个细节错误 2021-03-02 19:56:50 +08:00
MrZ626
2bb85c63d7 微调模式文件的说明文档 2021-03-02 14:33:02 +08:00
MrZ626
fa1cebca2d 新增可变场地高度 2021-03-02 01:17:03 +08:00
MrZ626
ea2db5da95 小游戏ten微调ui 2021-03-02 00:49:13 +08:00
MrZ626
85e5464bf3 小游戏15p增加【移动数】统计,同时移动一排只算一步 2021-03-02 00:48:58 +08:00
MrZ626
a2ab4167f1 修复CC不会开启20G模式 2021-03-01 21:52:12 +08:00
MrZ626
1ba10e18e8 全局变量spinCenters改名SCS 2021-03-01 21:09:28 +08:00
MrZ626
e71bf616f2 旋转中心和朝向信息放入方块对象中,修复+修改出块高度,修复无限上踢bug,整理代码 2021-03-01 21:09:28 +08:00
MrZ626
a9c892e6c7 更新联网相关代码(非最终,但不会运行到) 2021-03-01 16:36:45 +08:00
MrZ626
33101665e3 词典交互优化,可以用中文查了 2021-02-27 23:38:16 +08:00
MrZ626
a330d29a28 控件系统文本框的显示调整,输入框新增clear方法 2021-02-27 23:25:55 +08:00
MrZ626
2bddffd538 修复b2b spin6报错 2021-02-27 23:19:03 +08:00
MrZ626
0ad262bf64 修复小游戏tap的一个错误,整理代码 2021-02-27 16:23:03 +08:00
MrZ626
8b75ff7335 再减弱虚拟按键碰撞力度 2021-02-27 03:18:00 +08:00
MrZ626
35179f49ad 新增BGM:warped(用于Ultra和Tech-L难度) 2021-02-27 03:15:29 +08:00
MrZ626
d3cc3b16bb 添加deepDrop特效 2021-02-27 03:08:22 +08:00
MrZ626
04e39265ca 自定义可以启用deepDrop 2021-02-27 03:02:54 +08:00
MrZ626
27df62c80b 加入deepDrop功能 2021-02-27 02:57:13 +08:00
MrZ626
1e92029b3c 修复刷新方块状态时20G软降触发条件不正确 2021-02-27 02:57:01 +08:00
MrZ626
1e88d8ba46 修复ospin锁延刷新时机错误,调整音效 2021-02-27 02:48:08 +08:00
MrZ626
c42bb942f1 整理代码,略微调整小游戏dtw的交互 2021-02-25 01:06:02 +08:00
MrZ626
57003e3e8a 小游戏dtw增加速度,显示不同模式使用不同的方块颜色,音效画面略微调整 2021-02-24 17:48:30 +08:00
MrZ626
ae03ad29c1 整理代码 2021-02-24 17:42:33 +08:00
MrZ626
31e8ad6e0a 修复开了按键跟踪后回放录像会报错 2021-02-24 17:18:32 +08:00
MrZ626
d62b91659c 新增小游戏:Don't touch white 2021-02-24 01:10:59 +08:00
MrZ626
3a250447b0 修复粘贴quest的一个错误 2021-02-23 15:39:51 +08:00
MrZ626
678e254b68 微调地图动画 2021-02-23 02:13:52 +08:00
MrZ626
b86d085519 优化主循环内绘图函数调用,添加ws状态显示 2021-02-23 02:03:04 +08:00
MrZ626
d060f15e83 移除task模块对联网任务的计数处理 2021-02-23 01:55:43 +08:00
MrZ626
1ac4016235 修复消除了炸弹垃圾行时hpc的一个判定错误 2021-02-23 00:42:02 +08:00
MrZ626
db4b597be8 修复进攻-极限的一个垃圾行生成小问题 2021-02-23 00:36:23 +08:00
MrZ626
133d54597c 修改部分小游戏的进入单词,小游戏jgt内部名改为ten,新增小游戏tap 2021-02-22 23:30:29 +08:00
MrZ626
9083109ff1 玩家速度表算法写法调整 2021-02-22 23:29:34 +08:00
MrZ626
c6f408ff82 修改水印相关 2021-02-22 22:07:26 +08:00
MrZ626
898a6cf567 中文词典添加N-res词条 2021-02-22 02:09:25 +08:00
MrZ626
dd6659ce3d 调整部分词条,把大部分链接里的http改成https(亲自验证过) 2021-02-22 01:59:40 +08:00
MrZ626
a8119bc9dd 整理代码,把旧的wsWrite函数先改成新的WS.send,非最终稿 2021-02-22 01:10:25 +08:00
MrZ626
7d90a4dcfc 微调ws库,确认连接成功时刷新ping和pong时间 2021-02-22 01:05:05 +08:00
MrZ626
23524e5827 优化光标绘制,整理代码 2021-02-22 01:03:35 +08:00
MrZ626
337a776fbb 调整内存不足的提示信息 2021-02-21 21:47:18 +08:00
MrZ626
0c2bab42e8 修复更新存档时虚拟按键位移权重数值调整不当 2021-02-21 21:46:17 +08:00
MrZ626
f70099352a 整理虚拟按键碰撞相关代码,调整碰撞力度 2021-02-21 21:44:46 +08:00
MrZ626
eb79aad6cd 调整WS库send和read的参数顺序 2021-02-21 17:43:10 +08:00
MrZ626
4a0f6398eb 爆改ws库(基于love2d的thread) 2021-02-20 04:23:18 +08:00
MrZ626
a792190d44 修复处理落率显示可能会有两个负号 2021-02-20 04:04:13 +08:00
MrZ626
3e6a24d9c3 微调中文tips 2021-02-19 22:42:53 +08:00
MrZ626
fd63fe73cd 小游戏jgt增加预览,难度曲线调整 2021-02-19 21:01:21 +08:00
MrZ626
23ccfecad4 修复小游戏jgt合成13报错 2021-02-19 17:47:23 +08:00
MrZ626
e0690e0816 修复全解锁命令的一个问题 2021-02-17 17:59:10 +08:00
MrZ626
8708daaa60 微调ws库代码 2021-02-17 15:38:32 +08:00
MrZ626
a883c8a6cf 收拾掉旧的联网相关函数准备换新 2021-02-17 04:00:26 +08:00
MrZ626
cdc57dda38 删除不必要的network模块,联网函数移入gametoolfunc 2021-02-17 03:26:26 +08:00
MrZ626
82459a583f 调整ws断开的文本 2021-02-17 03:24:51 +08:00
MrZ626
ec35f8d2f7 再调整websocket库用法,更易lua使用 2021-02-17 03:19:17 +08:00
MrZ626
76070d195e 完善解码保护,联网收到非法消息不会爆炸了 2021-02-17 02:44:20 +08:00
MrZ626
8421d2e03c 修复没开濒死特效时濒死音效也没有,整理代码修复几个之前重构导致的变量泄露 2021-02-17 01:49:15 +08:00
MrZ626
82170df927 修复春节判定在意料之外日期报错,缩短春节的判定范围,整理代码 2021-02-17 01:34:01 +08:00
MrZ626
3581905462 弃用原来的联网库函数准备换新,让主分支可运行 2021-02-17 01:11:04 +08:00
MrZ626
2a4ca8c5af 修复进攻-极限没跟进新垃圾行系统报错 2021-02-17 00:54:59 +08:00
MrZ626
eda1b18bc6 微调task模块功能 2021-02-17 00:42:22 +08:00
MrZ626
8fdef2b7f5 再调整websocket库 2021-02-17 00:16:11 +08:00
MrZ626
063de09d3f 整理2048ui代码 2021-02-16 21:35:02 +08:00
MrZ626
5f96e8450e 微调快速启动方法 2021-02-16 21:26:19 +08:00
MrZ626
25b3617196 Merge branch 'master' of github.com:26F-Studio/Techmino 2021-02-16 16:58:31 +08:00
user670
55ae9a0999 Fix new PC damage rule translation 2021-02-16 16:58:22 +08:00
MrZ626
5943970312 修改loadLib用法,准备更换联网模块 2021-02-16 16:55:41 +08:00
MrZ626
35f62f1636 ws库最终修改 2021-02-15 20:51:16 +08:00
Particle_G
9946048b00 更新WebSocket库使提升请求支持body,并自动判断host端口 2021-02-15 18:11:18 +08:00
MrZ626
5fd2dd5b95 修改dumpRecording函数的注释块 2021-02-15 18:06:21 +08:00
MrZ626
f01ed4059a 修复一个之前录像机制更改但代码没有完全跟进导致对战时蓝屏 2021-02-15 17:56:28 +08:00
MrZ626
6a43f029c3 修复一个按钮文本出界 2021-02-15 16:38:17 +08:00
MrZ626
8c094a6d03 简洁模式立刻生效,不再需要返回到标题画面 2021-02-15 15:44:51 +08:00
MrZ626
711fce8305 更换节奏模式bgm(以后会特殊处理重新做) 2021-02-15 15:26:39 +08:00
MrZ626
efaa279e24 添加节奏模式-简单 2021-02-15 15:05:13 +08:00
MrZ626
f053b99ce3 调整节奏模式规则,降低难度 2021-02-15 14:20:25 +08:00
MrZ626
8464a93106 新增节奏模式,地图排版微调 2021-02-15 02:58:52 +08:00
MrZ626
d824f987b8 整理几个模式代码,调整马拉松速度曲线 2021-02-15 02:24:40 +08:00
MrZ626
8b87ca4d63 整理代码 2021-02-15 00:22:07 +08:00
MrZ626
6a648ae4d5 修复颠倒场地后网格显示不正确,整理代码 2021-02-15 00:04:47 +08:00
MrZ626
3cddabafb7 修复3D方块和showinvis冲突 2021-02-14 23:44:39 +08:00
MrZ626
7f00b46125 修复3D方块显示会让消行白光显示不正常 2021-02-14 20:13:29 +08:00
MrZ626
74759e3e0d 微调ws库的使用方法 2021-02-14 18:50:30 +08:00
MrZ626
2df8fa14e8 整理代码(by Particle_G),ws关闭前会发关闭消息 2021-02-14 18:35:45 +08:00
MrZ626
9e63c89166 小游戏2048盲打难度增加 2021-02-14 15:51:27 +08:00
MrZ626
946a1504f8 小游戏jgt新增合成新大数时间记录 2021-02-14 15:34:41 +08:00
MrZ626
1ca55f777f 减小小游戏jgt达到12时的难度 2021-02-14 15:10:41 +08:00
MrZ626
54ee86340c 修复存档转换时几个竞速搞混的问题 2021-02-14 14:27:03 +08:00
MrZ626
834daec255 暂停信息的两个时间改为显示处理落率 2021-02-14 14:26:33 +08:00
MrZ626
80f2f08283 修复部分模式中途启用的按键按了没用 2021-02-14 04:04:21 +08:00
MrZ626
b06d07bd47 修复录像(流)的一帧误差问题,移除玩家keyRec属性 2021-02-14 03:15:37 +08:00
MrZ626
fd5455e71f 模式评级全部改回使用真实时间而非帧数 2021-02-14 02:11:57 +08:00
MrZ626
cdf50ffb8d 整理代码 2021-02-14 02:05:55 +08:00
MrZ626
ab5d6878de 略微优化ws库代码 2021-02-13 20:42:48 +08:00
MrZ626
d6037ad15b 触发click事件更加容易 2021-02-13 20:29:28 +08:00
MrZ626
31844006d7 修复防守n难度报错 2021-02-13 20:29:21 +08:00
flaribbit
ba29da4f48 实现 ping pong close 2021-02-13 13:55:51 +08:00
MrZ626
9f285d21ef toolfunc文件拆分 2021-02-13 04:11:49 +08:00
MrZ626
bdb8b91e1f 整理ws库代码 2021-02-13 04:11:49 +08:00
flaribbit
723255dfa6 websocket client pure lua implement for love2d 2021-02-12 22:00:30 +08:00
MrZ626
b35ad7303c 修复创建房间名错误 2021-02-12 17:57:26 +08:00
MrZ626
973784ca0f 简洁模式 2021-02-12 16:24:16 +08:00
MrZ626
e911f4b9c5 取消text控件的plain属性,由fText取代 2021-02-12 16:23:07 +08:00
MrZ626
74ba833b47 修复垃圾行机制修改后进攻U模式问题 2021-02-12 14:15:51 +08:00
MrZ626
e28132c291 微调游戏中重开和暂停按钮位置 2021-02-12 02:38:11 +08:00
MrZ626
afcef53669 词典新加一个群友 2021-02-12 02:02:08 +08:00
MrZ626
7a20524fc9 整理tip 2021-02-12 01:54:04 +08:00
MrZ626
066fa92a24 0.13.0:维度突破(联网还有bug待修) 2021-02-11 23:55:55 +08:00
MrZ626
d6f17198a7 开的房间名为用户名 2021-02-11 23:47:10 +08:00
MrZ626
3751292833 修复聊天消息解析错误 2021-02-11 23:17:52 +08:00
MrZ626
c433d77362 英文tip排序 2021-02-11 19:37:21 +08:00
MrZ_26
3bf02da791 Merge pull request #48 from 26F-Studio/user670-patch-en-tips-cleanup-20210210
Clean up tips for English
2021-02-11 19:35:52 +08:00
MrZ626
4ca5624e3b 网战添加限制条件 2021-02-11 19:01:12 +08:00
MrZ626
6d6ee45830 优化用户名+id显示 2021-02-11 18:15:25 +08:00
MrZ626
ececb31307 尝试修复幽灵玩家问题 2021-02-11 16:19:42 +08:00
MrZ626
33ec4897f6 修复聊天室不能发分号 2021-02-11 15:13:11 +08:00
MrZ626
a28e25c4fb 整理代码,修复泄露到全局的几个变量 2021-02-11 13:35:57 +08:00
MrZ626
67c8ee3c94 网战会发空按键包了 2021-02-11 01:48:07 +08:00
MrZ626
b41136047c 网战失去连接会自动退出 2021-02-11 01:27:16 +08:00
MrZ626
e6cea306c1 整理代码,网战和普通游戏复用几个函数 2021-02-11 01:27:16 +08:00
MrZ626
950a6b42c2 削弱PC攻击力 2021-02-11 00:50:55 +08:00
user670
6c70a8c041 Clean up tips for English
- Everything with "暫定段位" removed: I removed it in one commit only for you to add them back in the next commit? Reason being Japanese, especially Kanji, are hard to understand for foreigners (unlike Chinese people who can read the Kanji), and without appropriate context, it's also impossible to infer the meaning.
- Every math formula removed.
- "There are totally about 300 tips now" removed: not a funny one, and also there aren't that many for English. Also bad grammar.
- Some changes are made to some entries that I didn't remove.
2021-02-10 23:18:45 +08:00
MrZ626
bfee3e4634 修复网战中玩家加入的错误 2021-02-10 22:47:02 +08:00
MrZ626
c50d343f31 修复垃圾行生成错误 2021-02-10 22:43:06 +08:00
MrZ626
0a7ea944c9 修复玩家速度表轻微显示问题 2021-02-10 21:59:46 +08:00
MrZ626
7222f4d079 网战显示胜者id 2021-02-10 21:59:42 +08:00
MrZ626
1c77c88b12 修复网战重开后上传数据错误 2021-02-10 21:12:14 +08:00
MrZ626
2d2bf64799 修复小游戏jgt的死亡判定错误 2021-02-10 20:38:09 +08:00
MrZ626
160d852cd2 升级合到10小游戏,修改进入方法 2021-02-10 20:08:59 +08:00
MrZ626
1b5401bf7f 简化场景touch事件参数 2021-02-10 20:08:10 +08:00
MrZ626
d2a524b26e 整理代码,微调节日主题变色逻辑 2021-02-10 19:21:05 +08:00
MrZ626
fbd435a018 新增小游戏:get10 2021-02-10 19:20:28 +08:00
MrZ626
28c38e84da 整理代码,把ScF正式加入staff 2021-02-09 22:27:37 +08:00
MrZ626
38fe77804e 升级存档更新代码 2021-02-09 22:25:59 +08:00
MrZ626
2a658dc371 增加一些tip 2021-02-09 21:21:29 +08:00
MrZ626
d301a1c12b 整理虚拟按键相关函数 2021-02-09 18:31:54 +08:00
MrZ626
58db840200 sfx模块微调 2021-02-09 18:29:52 +08:00
MrZ626
01753100f1 优化绘制虚拟按键的代码 2021-02-09 18:14:32 +08:00
MrZ626
5073fe5363 升级task模块和使用模块的网络相关函数,ws连接任务不再与未完成的http请求冲突 2021-02-09 17:59:27 +08:00
MrZ626
cab826ba34 更真实的3D方块 2021-02-09 17:44:21 +08:00
MrZ626
5fea32203a 高dpi屏幕拖动文本框速度修正 2021-02-09 15:31:31 +08:00
MrZ626
b85ac13c49 hold区域高方块也会缩放显示 2021-02-09 00:45:44 +08:00
MrZ626
d7c45dbe08 整理玩家绘制代码 2021-02-09 00:35:32 +08:00
MrZ626
39da050c74 联网推进49,处理游戏结束的相关信息 2021-02-09 00:18:54 +08:00
MrZ626
443fd1513a 联网推进48,增加准备按钮和开房按钮 2021-02-09 00:18:54 +08:00
MrZ626
93058057ec 联网推进39,修改对战房间进房消息 2021-02-09 00:18:54 +08:00
MrZ626
7c446872cb 联网推进37,修改ws消息分隔符,登录验证游戏版本,大改进房消息机制,准备开局系统初步 2021-02-09 00:18:54 +08:00
MrZ626
5eaea39e74 整理玩家绘制代码,增加联网等待时文本 2021-02-08 00:22:33 +08:00
MrZ626
db8ee5fc35 修复AtoZ小游戏不能切换字串 2021-02-07 16:45:26 +08:00
MrZ626
5190157454 修复放录像后按键无效 2021-02-07 15:27:33 +08:00
MrZ626
2bc03d43bc 升级存档更新代码 2021-02-07 15:02:29 +08:00
MrZ626
d3ad6ff7bf 整理代码 2021-02-07 15:02:15 +08:00
MrZ626
a8387de735 优化json库的utf8转码逻辑 2021-02-07 03:50:39 +08:00
MrZ626
38fd971d5c 微调烟花爆炸音效 2021-02-07 03:50:39 +08:00
MrZ626
15e4f332ed 优化输入框删除文字逻辑 2021-02-07 03:50:39 +08:00
MrZ626
33924b2c4a 升级存档更新代码 2021-02-07 03:50:39 +08:00
Particle_G
5b718e3f8c update APIs 2021-02-07 03:50:39 +08:00
MrZ626
d86eb59963 联网推进36,部分功能已经可用 2021-02-07 03:50:24 +08:00
MrZ626
eec05e7eb6 联网对战测试推进22 2021-02-06 13:24:15 +08:00
MrZ626
38d3e4477c 更新茶服ip地址 2021-02-06 12:48:05 +08:00
MrZ626
bc71d1dd7f 调整回放标记位置 2021-02-06 11:24:52 +08:00
MrZ626
d4b32a14b8 修复回放时可以按键 2021-02-06 11:24:44 +08:00
MrZ626
9991c782d4 修复节日主题导致的控件系统问题 2021-02-05 00:24:22 +08:00
MrZ626
58b6129f7c 修复触屏设置里网格开关问题 2021-02-05 00:24:22 +08:00
MrZ626
e170c16d02 再次整理/简化网络请求相关代码 2021-01-31 00:36:07 +08:00
MrZ626
7c4b69753a 调整debug模式功能按键顺序 2021-01-30 23:03:45 +08:00
MrZ626
3f72f258a1 调整pumpRecording函数,不再解码b64数据 2021-01-30 22:25:09 +08:00
MrZ626
dc0318092a 加一点注释 2021-01-30 22:14:39 +08:00
MrZ626
769ed65d61 微调网战ui聊天框相关 2021-01-30 22:13:10 +08:00
MrZ626
91e27ad4d8 新logo与新标题图 2021-01-30 00:40:55 +08:00
MrZ626
70cd39a55f 整理代码 2021-01-29 23:48:30 +08:00
MrZ626
facb64c0a7 修改游戏图标 2021-01-29 21:04:29 +08:00
MrZ626
2cc74ea946 联网对战(初版,不可用) 2021-01-29 01:28:55 +08:00
MrZ626
c8f4faaa95 联网api略微调整,http请求处理规范化 2021-01-29 01:25:32 +08:00
MrZ626
8d3910b7a0 修复几个语言fallback错误 2021-01-28 23:56:04 +08:00
MrZ626
c9056fe2dc 房间列表接口微调,加入上锁图标 2021-01-28 23:26:02 +08:00
MrZ626
e593c724c4 修复存档升级不小心搞反40行和400行成绩 2021-01-28 21:48:01 +08:00
MrZ626
c11be9f82f 略微调整存档升级代码 2021-01-28 18:11:09 +08:00
MrZ626
1e28535ed4 添加说明书场景 2021-01-28 18:10:45 +08:00
MrZ626
9354cb5c59 3D方块效果 2021-01-28 16:55:12 +08:00
MrZ626
5427e564de 调整绘制顺序,ghost的旋转中心下移 2021-01-28 16:05:01 +08:00
MrZ626
9d4ef9f7ef next中高度超过2的方块会缩小显示 2021-01-28 15:57:41 +08:00
MrZ626
aaa9ca607f 重开键和暂停键移动位置 2021-01-28 13:51:41 +08:00
MrZ626
14bd90bf75 das系统微调,按反方向移动不再彻底切断原方向键 2021-01-27 23:36:09 +08:00
MrZ626
625d457517 修复暂停计数逻辑错误 2021-01-27 23:23:53 +08:00
MrZ626
b7575ddc4e 服务器url存入PATH变量 2021-01-27 21:31:13 +08:00
MrZ626
7217df1829 修复房间列表界面键盘交互小逻辑问题 2021-01-27 21:27:37 +08:00
MrZ626
55e76a52be 按键机制更改,新键位设置菜单 2021-01-27 19:33:24 +08:00
MrZ626
4af660666b 添加危险警告音效,整理代码 2021-01-27 12:32:25 +08:00
MrZ626
91ee6b9f56 限制文本框滑块尺寸 2021-01-27 10:44:16 +08:00
MrZ626
28e31472fe 更新触摸特效,更换15p轨迹特效 2021-01-27 10:43:58 +08:00
MrZ626
2fd81413d1 音乐室显示播放进度条 2021-01-27 02:01:57 +08:00
MrZ626
c50b61ffc5 修复自定义拼图进去就报错(复制的时候漏了一行) 2021-01-26 15:15:54 +08:00
MrZ626
fa6f945eb2 自定义ai等级有文字指示 2021-01-25 23:29:33 +08:00
MrZ626
d812b74f36 tips里的屁爷名言统一格式并加一条 2021-01-25 23:28:44 +08:00
MrZ626
bfac711663 修复之前控件系统升级手滑导致方向键选择按钮会报错 2021-01-25 23:27:47 +08:00
MrZ626
3446220895 中文词典添加现代方块的判断依据,英文待补充 2021-01-25 22:51:24 +08:00
MrZ626
54421a0a6e 再增加/调整一些tips 2021-01-25 15:38:24 +08:00
MrZ626
3751ec2c34 主界面tips滚动显示 2021-01-25 15:24:47 +08:00
MrZ626
18988e690b 调整字号计算字体高度的公式 2021-01-25 15:24:23 +08:00
MrZ626
a858ddbe67 添加几个tips,把Big_True加到特别感谢名单里 2021-01-25 15:23:45 +08:00
MrZ626
94705970be 更新历史界面可以用pageup/down控制(之前写错了) 2021-01-24 23:31:57 +08:00
MrZ626
4c29ed4634 取消暂停时可以更早一点看到场地 2021-01-24 23:31:32 +08:00
MrZ626
ea9858d41d 对老版本存档更兼容 2021-01-24 23:25:01 +08:00
MrZ626
c9d147c528 由于删除重开按钮,修改默认键位和虚拟按键布局 2021-01-24 14:33:23 +08:00
MrZ626
5ff8d96054 暂停界面可以用方向键选择按钮 2021-01-24 14:21:11 +08:00
MrZ626
6413111615 修复可以用方向键选择不可见按钮 2021-01-24 14:20:59 +08:00
MrZ626
d4cbfc82a6 虚拟按键的重开键取消,换成2号功能键 2021-01-24 14:20:47 +08:00
MrZ626
aad36f44c1 电脑不再默认全屏,增加f11开关全屏功能,整理代码 2021-01-24 13:45:13 +08:00
MrZ626
515c6f93a8 textBox控件名让给真·文本框,输入框控件改名inputBox,更新历史界面使用文本框控件 2021-01-24 13:17:01 +08:00
MrZ626
665fdbf53e 微调切换场景初始化流程 2021-01-24 13:14:40 +08:00
MrZ626
3df8b55d65 修复自定义-高级中隐形时间选择器问题 2021-01-24 13:12:18 +08:00
MrZ626
99e63b749a 文本框控件支持拖动和清空 2021-01-24 10:10:08 +08:00
MrZ626
eb370ba88f 新增聊天框控件,用于联网场景(未完成) 2021-01-24 00:45:08 +08:00
MrZ_26
4643ef6179 Merge pull request #47 from 26F-Studio/user670-patch-1
Update dict_en.lua
2021-01-23 19:17:34 +08:00
user670
d1aad2a921 Update dict_en.lua 2021-01-23 19:01:43 +08:00
MrZ626
709486f8d9 修复语言按钮顺序错误 2021-01-23 18:06:03 +08:00
MrZ626
768c608a02 词典升级,等待英文部分跟进 2021-01-23 18:04:47 +08:00
MrZ626
4fd21ba834 修复pc训练题目生成范围错误 2021-01-23 16:56:52 +08:00
MrZ626
765fbaf247 修复pc训练的失败判定bug 2021-01-23 12:35:20 +08:00
MrZ626
112c6dc020 皮肤文件名修改,解决多平台文件名识别问题 2021-01-23 12:28:30 +08:00
MrZ626
b4aac1d129 存档升级代码调整 2021-01-23 12:16:26 +08:00
MrZ626
55ad0d3ab0 重置两个pc练习的评级 2021-01-23 02:35:35 +08:00
MrZ626
4d6b3cc3da pc练习题库大改 2021-01-23 02:32:11 +08:00
MrZ626
f405ce9660 皮肤文件名大小写纠正 2021-01-22 20:23:27 +08:00
MrZ_26
209829d42f Delete media/image/skin directory 2021-01-22 20:21:10 +08:00
MrZ626
cc4bde1265 再增加两个ScF画的皮肤 2021-01-22 20:07:56 +08:00
MrZ626
bbe6614ddc staff增加彩蛋提示 2021-01-22 01:02:02 +08:00
MrZ626
9a619734ae 略微提高blind_wtf模式上榜条件 2021-01-21 23:10:14 +08:00
MrZ626
28380815e7 词典更新kissne的40行手机最佳纪录 2021-01-21 11:32:58 +08:00
MrZ626
6a6cf1e3ab 修复增加葡萄牙语后开yygq进词典会报错并更改语言排序 2021-01-20 22:41:24 +08:00
MrZ626
851469b6a5 修改几乎所有模式名 2021-01-20 22:39:44 +08:00
MrZ626
017e190e4a 微调取消暂停动画,添加音效 2021-01-20 20:11:02 +08:00
MrZ626
4c351cd1e1 确认退出聊天房间的文本改名给全局用 2021-01-20 19:56:27 +08:00
MrZ626
045adaaa43 取消暂停会有倒计时 2021-01-20 00:55:31 +08:00
MrZ626
48e9e5e2c5 游戏界面按鼠标右键不再会退出 2021-01-20 00:55:31 +08:00
MrZ626
674a48133a 调整场景/控件模块 2021-01-20 00:55:30 +08:00
MrZ626
44cfddf601 增加和修改一些tip 2021-01-20 00:55:30 +08:00
MrZ626
667c3c240b 给虚拟按键添加颜色 2021-01-20 00:55:30 +08:00
MrZ626
ba8a39465f 修复粘贴任务后光标位置错误 2021-01-20 00:55:30 +08:00
MrZ626
562f7c4f2d 皮肤微调 2021-01-20 00:55:30 +08:00
MrZ626
c6c24b8f05 隐形速度增加两个挡位,只能通过自定义/mod调出 2021-01-20 00:51:08 +08:00
MrZ626
261caf3544 新增BGM:vapor(用于tsd) 2021-01-20 00:51:08 +08:00
MrZ626
1957370b5c 客户端聊天室改用新的数据交换格式 2021-01-13 22:23:45 +08:00
MrZ626
32f9c82ffc 2048的repeater功能完善,排版调整 2021-01-13 02:10:45 +08:00
MrZ626
1a212fb64b 语言/控件系统升级,移除LANG.setPublicText 2021-01-13 02:10:41 +08:00
MrZ626
ecd8354d8f 控件支持强制文本,不随语言变化 2021-01-13 01:19:57 +08:00
MrZ626
dcf0d6649d 2048增加repeater 2021-01-13 00:16:07 +08:00
MrZ626
c2087cef25 TEXT.show的style改为可选 2021-01-09 01:09:57 +08:00
MrZ626
b5021a1121 添加wsError文本 2021-01-08 23:17:48 +08:00
MrZ626
387e272763 删除tick模块,内容移至gametoolfunc 2021-01-08 23:17:37 +08:00
MrZ626
96e1253030 2048增加按钮操作,修复分数计算错误 2021-01-08 01:18:53 +08:00
MrZ626
783c3eced4 房间列表场景添加"进入"按钮 2021-01-08 00:52:48 +08:00
MrZ626
a46dec04eb 大幅削弱skip功能可使用时机 2021-01-08 00:17:38 +08:00
MrZ626
bc0d22e54c 修复cubes背景一个致命内存/绘图问题 2021-01-07 23:21:05 +08:00
MrZ626
15cedd71b6 2048实装 2021-01-07 23:19:24 +08:00
MrZ626
3efda7ce74 修复极简成就刷新错误问题 2021-01-07 22:29:04 +08:00
MrZ626
5a884f45ca 微调赞助列表样式 2021-01-07 22:08:11 +08:00
MrZ626
c57c9a972f 历史场景优化 2021-01-07 22:04:13 +08:00
MrZ626
3ef57cde27 修复游戏结束后还计算按键次数 2021-01-07 18:03:21 +08:00
MrZ626
4dc6512898 春节BGM版权规避 2021-01-06 14:21:17 +08:00
MrZ626
6485e9cec5 修复两个背景启动报错 2021-01-06 13:32:06 +08:00
MrZ626
f1bc85b5bc 滑条和开关控件也可以有颜色了,修复一个节日名字打错导致报错 2021-01-06 13:31:52 +08:00
MrZ626
1c710c95cc master_ph移除之前的测试代码 2021-01-06 13:23:56 +08:00
MrZ626
223ce05fad 修复BG.set不存在的背景时爆炸 2021-01-06 00:52:44 +08:00
MrZ626
59f0d190cb 新背景:Cubes 2021-01-06 00:30:09 +08:00
MrZ626
cf57caea70 整理代码 2021-01-05 20:58:21 +08:00
MrZ626
c0e44b324b 修复烟花背景在高dpi显示错误 2021-01-05 19:44:00 +08:00
MrZ626
20c177c653 文档微调 2021-01-05 17:23:14 +08:00
MrZ626
16f3ad09dd 整理gametoolfunc,添加注释 2021-01-05 17:10:01 +08:00
MrZ626
3c40dc0fdb 暂停按钮字号再小一点 2021-01-05 15:48:12 +08:00
MrZ626
d329f665b1 整理代码,WIDGET.lnk系列函数移出WIDGET模块 2021-01-05 15:40:43 +08:00
MrZ626
19b2f268a8 微调staff表 2021-01-05 12:20:45 +08:00
MrZ626
c18ce9abf2 新皮肤:Simple(ScF) 2021-01-04 22:26:44 +08:00
MrZ626
44af9ede48 初始化前BGM.getList会主动报错 2021-01-04 21:54:57 +08:00
MrZ626
ccc40411ea 更严谨的背景文件读取,不会读到非lua文件 2021-01-04 21:54:22 +08:00
MrZ626
51cc1a44d9 自定义游戏的背景列表改为自动读取 2021-01-04 21:54:06 +08:00
MrZ626
b565eb7b37 移除忘了删的两行测试代码 2021-01-04 21:52:48 +08:00
MrZ626
861f6f7127 春节主题+背景+音乐 2021-01-04 21:01:33 +08:00
MrZ626
fd7574e7fd 节日主题颜色更好扩展 2021-01-04 18:52:45 +08:00
MrZ626
a372a86668 词典彩蛋支持多词汇触发 2021-01-04 18:49:53 +08:00
MrZ626
e213ca8daf 背景代码略微优化 2021-01-04 14:49:54 +08:00
MrZ626
10ac82cd41 语言文件整理,staff表调整 2021-01-03 23:21:07 +08:00
MrZ_26
6201271e22 Merge pull request #45 from Scf16/patch-4
New language: Portuguese
2021-01-03 22:41:26 +08:00
Scf16
17cc178c11 Fixed some stuff i forgot, use this one
Forgot some stuff, now its fixed
2021-01-03 00:13:48 -03:00
MrZ626
ee99cd9786 准备好葡萄牙语文件等待翻译 2021-01-02 21:03:44 +08:00
MrZ626
24afafceba 把四个影响ai的mod改为成绩无效 2021-01-02 20:41:05 +08:00
MrZ626
152482b225 修复挖掘模式垃圾行出现可能报错 2021-01-02 15:00:37 +08:00
MrZ626
fc15e2fe3d 触屏每帧只采样一次 2021-01-01 16:43:21 +08:00
MrZ626
caf99c2605 移除玩家的r和c属性,改为使用实时方块尺寸 2021-01-01 16:31:55 +08:00
MrZ626
afa0a529cd 整理代码 2021-01-01 04:28:39 +08:00
MrZ626
40d88a1838 房间选择界面初版 2021-01-01 04:11:44 +08:00
MrZ626
0ae960834d 联网api整理 2021-01-01 03:56:48 +08:00
MrZ626
0b59842908 暂停按钮稍微小一点 2021-01-01 03:56:14 +08:00
MrZ626
eac6800a17 ws连接必须在没有网络任务时执行 2021-01-01 02:33:31 +08:00
MrZ626
04bdf2e5ee 更改进入聊天室的逻辑,先连接WS再切换场景,顺便修改场景名 2021-01-01 02:30:24 +08:00
MrZ626
ba4dec552f 整理修改 2020-12-31 17:54:24 +08:00
MrZ_26
6f60c4c1a5 Merge pull request #43 from 26F-Studio/user670-patch-1
Update lang_en.lua
2020-12-31 17:42:02 +08:00
MrZ626
58b182c46f 皮肤设置页面增加一点动画 2020-12-31 16:21:18 +08:00
MrZ626
b56cc96ffb 默认皮肤改为新皮肤Crystal(ScF),Trapezoid更名为Toy 2020-12-31 15:33:56 +08:00
MrZ626
f6b613ee17 增加c4w模式初始场地情况 2020-12-31 14:53:10 +08:00
user670
1d24a4ccd1 Update lang_en.lua
Changed main menu tips:
- All entries that are just color names removed: too lame.
- All entries that are hotkeys removed: hotkeys vary wildly by OS, platform, software, etc. Not all hotkeys apply everywhere.
- All entries with Japanese in it removed: the Touhou one is irrelevant; the TGM ones... well, I don't know, I just don't feel I want unexplained Japanese text in here
- Similarly, "1, 2, 9!!!" removed (irrevalent)
- "Diao so bully" removed (personal attack)
- "Less MD II" removed (It's supposed to be a Minecraft reference? but it's hard to tell really. If you really want to keep it, use this instead: `Splash Potion of Accuracy: Reduced Misdrop (1:30)`)
- "Techminohaowan" removed (similar to removing Japanese, I don't want unexplained Pinyin either. Plus we have the same thing in English)
- "Pure Memory" removed (irrevalent)
- "Also try Tetra Legends" removed (game's ded)
- The two DMCA-related entries had 《》 replaced with "". 《》 isn't in English
- Added back "#FreeTetraOnline"
- Added a "Piracy is no party", referring to the Nintendo anti-piracy screen memes
2020-12-31 01:17:45 +08:00
MrZ626
00c511b4e9 新增皮肤Trapezoid(ScF) 2020-12-30 22:30:46 +08:00
MrZ626
47201098c8 优化高频引用 2020-12-30 22:25:43 +08:00
MrZ626
a99014b64b quest包含多场地,原格式失效(可手动修复),修复粘贴quest后左下小场地画面状态错误 2020-12-29 23:43:00 +08:00
MrZ626
1ec9b6417a 添加进入房间的api 2020-12-29 18:48:56 +08:00
MrZ626
46a081e056 管理存档的代码微调 2020-12-29 18:33:37 +08:00
MrZ626
c7dc7088c4 触屏限制每帧采样两次 2020-12-29 00:24:34 +08:00
MrZ626
87e23f3e88 新增一点词典彩蛋 2020-12-28 22:14:17 +08:00
MrZ626
cb23837684 BGM模块也支持setDefault 2020-12-28 22:14:02 +08:00
MrZ626
27baab2f57 简化代码 2020-12-28 22:13:42 +08:00
MrZ626
cbd013d2f5 主菜单排版微调 2020-12-28 17:54:33 +08:00
MrZ626
dcc05aff08 使用代码主动加载音频文件 2020-12-28 17:54:15 +08:00
MrZ626
4800afa0db text控件增加plain属性 2020-12-28 17:53:23 +08:00
MrZ626
b769d1b1d5 修改之前场景名打错,准备好获取房间列表的api 2020-12-27 21:49:33 +08:00
MrZ626
e6221b5f42 TE词条纠错,补充TEC信息 2020-12-27 20:56:29 +08:00
MrZ626
11635ec959 增加大量tips 2020-12-26 20:12:58 +08:00
MrZ626
773f15c563 把结算页面框住mod的框对齐 2020-12-26 16:29:15 +08:00
MrZ626
e9b4e4450c 尝试优化游戏时的touchmove事件代码 2020-12-26 16:23:57 +08:00
MrZ626
30042a363e 修复软件锁开启时启动后立即进入debug后VOC模块报错 2020-12-26 16:19:01 +08:00
MrZ626
315de60e79 profile库输出排版微调 2020-12-26 15:56:59 +08:00
MrZ626
33e71dbfa9 更改按键可见性代码做成函数 2020-12-26 15:55:57 +08:00
MrZ626
fec1da8818 手机不再默认开启震动 2020-12-26 15:52:46 +08:00
MrZ626
c2c0deaeb7 整理代码 2020-12-26 15:44:24 +08:00
MrZ626
0a95db4035 删一个无用文件 2020-12-26 15:02:24 +08:00
MrZ626
0c60dcb264 0.12.X: 圣诞快乐 2020-12-25 23:33:25 +08:00
MrZ626
5ae8f2c5a7 整理代码 2020-12-25 23:32:16 +08:00
MrZ626
86bc261042 修复非20G高重力块穿模 2020-12-25 23:26:50 +08:00
MrZ626
8680a8175f 新增BGM:mXmas 2020-12-25 23:26:46 +08:00
MrZ626
c2d5fd7a90 调整magicblock的音质 2020-12-25 22:56:50 +08:00
MrZ626
5c382e63b0 升级i2的踢墙表 2020-12-25 22:21:38 +08:00
MrZ626
e3e36d943e 修复SCR.print的错误 2020-12-25 22:12:13 +08:00
MrZ626
d15ca6e6d1 修复o1转了之后放会报错 2020-12-25 21:45:11 +08:00
MrZ626
412248b6d9 修复自定义模式带ai就爆炸 2020-12-25 21:44:59 +08:00
MrZ626
f89da92b52 0.12.25: N连块 2020-12-25 21:27:45 +08:00
MrZ626
8a57bdf774 飘雪背景加入自定义游戏可选 2020-12-25 21:25:59 +08:00
MrZ626
cad86487c1 文档微调 2020-12-25 21:24:43 +08:00
MrZ626
1729e1f36d 背景系统增加“默认背景”功能,新增节日飘雪背景 2020-12-25 20:23:16 +08:00
MrZ626
4850cdb292 延长判定为圣诞节的天数 2020-12-25 19:44:43 +08:00
MrZ626
f89655e5fa 暂停界面排版升级 2020-12-25 19:38:45 +08:00
MrZ626
6c86a4e48b 修复极简评级不会清空,一直显示之前的 2020-12-25 19:11:13 +08:00
MrZ626
c7bd0e0e03 圣诞节彩蛋 2020-12-25 18:12:34 +08:00
MrZ626
5a355a1d11 整理代码,移除drawableTextLoad表 2020-12-25 16:35:28 +08:00
MrZ626
3bf44819e4 性能优化 2020-12-25 15:09:02 +08:00
MrZ626
27257a40d2 更新后重新计算解锁状态保存时机调整 2020-12-25 11:41:26 +08:00
MrZ626
4987120713 两个ScF做的新皮肤,Penta皮肤微调 2020-12-25 11:41:12 +08:00
MrZ626
0ca43c0945 更新自动调整五联块颜色 2020-12-25 11:25:07 +08:00
MrZ626
3eb3dde089 修复自定义游戏不使用序列/任务会爆炸(两个env参数不应为false,之前改错了) 2020-12-25 09:14:50 +08:00
MrZ626
a495610f29 高速经典模式隐藏180度旋转键 2020-12-25 00:39:49 +08:00
MrZ626
2506eee0fb 按钮音微调(加速) 2020-12-24 12:40:54 +08:00
MrZ626
b13d164ccf 极简连击计数器显示AP和FC的颜色 2020-12-24 12:32:34 +08:00
MrZ626
01bf8bc4a8 新按钮音 2020-12-24 01:07:58 +08:00
MrZ626
fe2abf6903 规范代码,大量xxx=nil换成xxx=false 2020-12-22 14:54:01 +08:00
MrZ626
f611199fab 更新整理法文和西文部分注释,网络错误提示信息更具体,netgame_xx系列改名,房间列表场景初步 2020-12-22 14:36:27 +08:00
MrZ626
8fffeaca94 调整一些模式bgm 2020-12-22 10:58:24 +08:00
MrZ626
aa4992469d 修复全解锁不能正确工作 2020-12-21 21:13:50 +08:00
MrZ626
7dd7aec10c 调整自定义序列菜单文本 2020-12-21 20:10:43 +08:00
MrZ626
bfac67fa87 自定义序列ui调整,支持新增的1~3连块和随机生成一包 2020-12-21 18:55:02 +08:00
MrZ626
06b9dc86d6 自定义序列添加随机生成一包的按钮 2020-12-21 18:54:26 +08:00
MrZ626
83253c76e8 新BGM: magicblock 2020-12-21 18:11:47 +08:00
MrZ626
66f5c30f5a 五连块颜色调整,加入一至三连块,删除mino文件,整理相关代码,美化注释 2020-12-21 13:51:41 +08:00
MrZ626
da46057666 省去不用翻译的一些文本 2020-12-21 13:32:53 +08:00
MrZ626
10343559a6 淘汰一个没啥用的玩家属性 2020-12-21 13:32:16 +08:00
MrZ626
e3dd55a102 重命名Pentagons(ScF) 2020-12-21 11:38:17 +08:00
MrZ626
f6154ba46f 整理代码 2020-12-21 11:38:03 +08:00
MrZ626
a38e1f201d resetGameData参数更高级 2020-12-21 08:37:15 +08:00
MrZ626
a97fc8b53a 修复窗口强制缩放很小后LOG.print报错 2020-12-20 23:28:11 +08:00
MrZ626
d0ec3f4139 快速重开不播放入场动画 2020-12-20 23:17:51 +08:00
MrZ626
ecc1ae826f 0.12.9: 修复更新 2020-12-19 16:01:50 +08:00
MrZ626
408377e51b 修复字号泄露出5N问题 2020-12-19 16:01:41 +08:00
MrZ626
1f5698ce15 玩家出场动画加速 2020-12-19 16:01:37 +08:00
MrZ626
d4a23ee68c 微调 2020-12-19 15:32:57 +08:00
MrZ626
b76b82d6ee 文件读取更安全 2020-12-19 15:32:43 +08:00
MrZ626
2a0154dfa0 尝试修复更新后加载爆炸 2020-12-19 14:52:34 +08:00
MrZ626
622177e0df 攻击力统计算法修改 2020-12-19 01:53:05 +08:00
MrZ626
b04131b408 0.12.8: 皮肤调整 2020-12-19 01:34:16 +08:00
MrZ626
e93ef851ac b3b触发点和上限都减小200,变为800和1000 2020-12-19 01:33:45 +08:00
MrZ626
4d7f2e6698 修复游戏结束后两个码表显示不正确 2020-12-18 22:56:44 +08:00
MrZ626
abf827bc2b 修复每次启动游戏统计信息的消除信息必定丢失 2020-12-18 22:52:53 +08:00
MrZ626
ee25d35220 修复更新后自动删除老版本rank的代码位置错误 2020-12-18 22:06:18 +08:00
MrZ626
eef8e594a2 皮肤全部重新调整 2020-12-18 21:40:33 +08:00
MrZ626
5edeffbda4 修复手机第一次进会爆炸的问题(初始化顺序不正确) 2020-12-18 19:55:28 +08:00
MrZ626
af4df9c2e2 整理代码 2020-12-18 16:46:29 +08:00
MrZ626
ac18ad2fcd 修复使用开关式mod就报错 2020-12-17 22:03:08 +08:00
MrZ626
1d293bb186 尝试清理旧版本不计分模式的rank记录,修复选关界面报错 2020-12-17 17:37:26 +08:00
MrZ626
99611910de 交换主菜单两个按钮位置 2020-12-17 00:21:09 +08:00
MrZ626
632c88c5f8 0.12.7: 视野 Sight 2020-12-16 23:34:09 +08:00
MrZ626
a3d6155096 修复一个手滑小问题 2020-12-16 20:02:57 +08:00
MrZ626
af3fc34098 小游戏关键词修改,词典加上说明 2020-12-16 17:33:46 +08:00
MrZ626
dbd261fbf1 调整小游戏背景 2020-12-16 17:32:42 +08:00
MrZ626
19a7a322c5 兼容老版本设置文件 2020-12-16 16:48:01 +08:00
MrZ626
36cf0aaf8e 修复一个跨版本存档更新失败问题,删除dll不再需要重启 2020-12-16 11:24:11 +08:00
MrZ626
32b0937ad9 修复conf/account没改完导致账户信息存不上文件 2020-12-16 00:35:10 +08:00
MrZ626
13b176d515 场地遮挡和场地反转的mod完成 2020-12-16 00:08:13 +08:00
MrZ626
81aab6bdb3 COLOR模块增加几个没卵用的(大概)rainbow拓展函数 2020-12-16 00:08:13 +08:00
MrZ626
23abf14888 修复COLOR模块函数名打错 2020-12-16 00:08:13 +08:00
MrZ626
79f49fab4d 新增两个皮肤,作者:ScF 2020-12-16 00:08:13 +08:00
MrZ626
e732aae87b 整理代码 2020-12-16 00:08:13 +08:00
MrZ626
cf3ca2e9e0 整理代码 2020-12-16 00:08:13 +08:00
MrZ626
1030330add win和linux缺库也许不会再闪退了 2020-12-16 00:08:13 +08:00
MrZ626
b82e3b873b 调整转换存档/加载文件的逻辑 2020-12-16 00:08:13 +08:00
MrZ626
b0f885ab2c LANG模块代码整理,增加添加语言的说明 2020-12-16 00:08:13 +08:00
MrZ626
2758a2eb03 FILE.load失败时不再返回空表,直接返回空值 2020-12-16 00:08:13 +08:00
MrZ626
6c012aa0ad 回合制模式垃圾上涨速度调快 2020-12-16 00:08:13 +08:00
MrZ626
52a3c01829 增强词典的彩蛋文本功能
增强词典的彩蛋文本功能
2020-12-16 00:07:56 +08:00
MrZ626
33b0d15bb3 0.12.6: 系统升级 2020-12-15 00:17:36 +08:00
MrZ626
9565a4f36a 把naki写进staff名单 2020-12-15 00:04:30 +08:00
MrZ626
07d1252fb0 修复存档升级代码的一个小问题 2020-12-14 23:26:34 +08:00
MrZ626
f0ef22f730 主菜单布局微调 2020-12-14 23:26:34 +08:00
MrZ626
1f070f78e6 所有小游戏入口移至词典 2020-12-14 23:26:34 +08:00
MrZ626
e2c29aabf8 静默保存record 2020-12-14 23:26:34 +08:00
MrZ626
f0fb37c9fc 保存失败时会输出更多信息 2020-12-14 23:26:34 +08:00
MrZ626
b4a4831ef9 强化旧版存档识别 2020-12-14 23:26:34 +08:00
MrZ626
3680ff4b6a 修复整理代码搞错for格式 2020-12-14 23:26:34 +08:00
MrZ626
d899954912 每次启动时都会检查存档路径是否有文件夹 2020-12-14 23:26:34 +08:00
MrZ626
fdf01e1d1e 录像保存初版(读取回放还没做) 2020-12-14 23:26:34 +08:00
MrZ626
d49a08626f 修正FLIE.save搞反静音模式是否print 2020-12-14 23:26:34 +08:00
MrZ626
2512bace19 修正游戏中途退出时结算不正确 2020-12-14 23:26:34 +08:00
MrZ626
6e3961fe0f 排行文件使用rec后缀 2020-12-14 23:26:33 +08:00
MrZ626
020c87158c 垃圾行计时速度从GAME移至gameEnv 2020-12-14 23:26:33 +08:00
MrZ626
a12df840a4 GAME.rec更名GAME.rep 2020-12-14 23:26:33 +08:00
MrZ626
ca9565bb60 整理代码 2020-12-14 23:26:33 +08:00
MrZ626
4d39924059 全局变量ACCOUNT改名USER 2020-12-14 23:26:33 +08:00
MrZ626
a409557019 GAME.setting包含更多设置项(影响录像回放的部分) 2020-12-14 23:26:33 +08:00
MrZ626
54abfee660 整理代码 2020-12-14 23:26:33 +08:00
MrZ626
42f02bb9fc mod列表使用数字作为索引 2020-12-14 23:26:33 +08:00
MrZ626
a4348f9646 移除maxNext设置项 2020-12-14 23:26:33 +08:00
MrZ626
7a33814886 整理代码 2020-12-14 23:26:33 +08:00
MrZ626
1e7ee927c4 修改入场动画运动曲线 2020-12-14 23:26:33 +08:00
user670
b423d0346b Updated English localization 2020-12-14 23:26:33 +08:00
MrZ626
3b3af9056a 重置存档数据的文件格式跟着更新,删除全部数据改为删除纪录 2020-12-14 23:26:33 +08:00
MrZ626
7d62f00274 游戏开始开始两秒后或者确实结束后才计入统计数据 2020-12-14 23:26:33 +08:00
MrZ626
d5dcc78acd FILE模块修改,并将所有文件分类整理方便未来调整 2020-12-14 23:26:33 +08:00
MrZ626
fdbbdfea05 修复IMG模块加载计数器问题 2020-12-14 23:26:32 +08:00
MrZ626
2d974543ff 整理删除旧存档文件的代码 2020-12-14 23:26:32 +08:00
MrZ626
44bf90e830 移除词典内的ospin操作表 2020-12-14 23:26:32 +08:00
MrZ626
ca8cf27371 马拉松-极限入口隐藏,顺带修改翻译文件/模式列表中模式的顺序 2020-12-14 23:26:32 +08:00
MrZ626
4d7da801a7 整理加载场景的变量名 2020-12-14 23:26:32 +08:00
MrZ626
dfebbecb87 行的垃圾行标签键从[11]改为garbage 2020-12-14 23:26:32 +08:00
MrZ626
5805edef0a 修复之前淘汰sceneTemp时没有清理干净导致的大量变量泄露 2020-12-14 23:26:32 +08:00
MrZ626
6eed2fff0e 整理代码 2020-12-14 23:26:32 +08:00
MrZ626
25b76e3b86 "远程玩家"进入可用测试阶段 2020-12-14 23:26:32 +08:00
MrZ626
e976fbb623 由于”远程玩家“的加入,玩家布尔值属性human改为字符串属性type 2020-12-14 23:26:32 +08:00
MrZ626
11a93c8470 修正词典的tatianyi词条 2020-12-14 23:26:32 +08:00
MrZ626
5b0f9f1f4d 输出SCR信息改为SCR模块内方法 2020-12-14 23:26:32 +08:00
MrZ626
eaaaeada51 游戏开始创建玩家设置初始位置时使用动画 2020-12-14 23:26:32 +08:00
MrZ626
b440a900c4 修复外观设置标题位置错误 2020-12-14 23:26:32 +08:00
MrZ626
0de8fa1934 整理语言文件 2020-12-14 23:26:32 +08:00
MrZ626
bb95c9e3a3 淘汰sceneTemp技术 2020-12-14 23:26:32 +08:00
MrZ626
937eed1ee6 0.12.5: 漏洞修复 2020-12-14 23:26:31 +08:00
MrZ626
0cd9d11d4e 修复防守模式垃圾行增速爆炸的问题 2020-12-14 23:26:31 +08:00
MrZ626
4809afe287 字典微调 2020-12-14 23:26:31 +08:00
MrZ626
681802d030 SKIN模块升级,其他多媒体模块微调 2020-12-14 23:26:31 +08:00
MrZ626
ddbe1d9c97 几个多媒体模块支持重载资源 2020-12-14 23:26:31 +08:00
MrZ626
aa3826ed8d 整理代码 2020-12-14 23:26:31 +08:00
MrZ626
c2333982fa 两个干旱和400L/1000L评级标准调整 2020-12-14 23:26:31 +08:00
MrZ626
5d963ce7ae 闪退彩蛋 2020-12-14 23:26:31 +08:00
MrZ626
8e1c53b1e7 多媒体库再完善,未初始化时调用不会报错了 2020-12-14 23:26:31 +08:00
MrZ626
5c073257b7 微调mod挡位显示 2020-12-14 23:26:31 +08:00
MrZ626
35e09b3acd 使用安全区域显示系统时间 2020-12-14 23:26:31 +08:00
MrZ626
7ed0248032 计算器添加两个影响画面的的彩蛋 2020-12-14 23:26:31 +08:00
MrZ626
c7a813e8d5 修复多媒体库更新后两个用到bgm库的地方没有跟上 2020-12-14 23:26:31 +08:00
MrZ626
b97b87bfb0 修复staff场景按esc不能返回 2020-12-14 23:26:31 +08:00
MrZ626
106a22eb27 整理代码 2020-12-14 23:26:31 +08:00
MrZ626
0439a3e73d 修复两个防守模式波数封顶后不动 2020-12-14 23:26:31 +08:00
MrZ626
3fb6cfb1be 多媒体模块全体高度封装大型升级 2020-12-14 23:26:31 +08:00
MrZ626
4eba28fa96 网格从开关改为可调透明度 2020-12-14 23:26:30 +08:00
MrZ626
0443d5baf7 微调初始音量设置 2020-12-14 23:26:30 +08:00
MrZ626
19c393a8d9 更新中文词典,新增das打断说明,微调几个词条 2020-12-14 23:26:30 +08:00
MrZ626
f63db4dd19 新增das打断设置 2020-12-14 23:26:30 +08:00
MrZ626
106b2a7a98 SYSFX模块新增newLine方法 2020-12-14 23:26:30 +08:00
MrZ626
876461e8d2 修改SYSFX.newShade用法 2020-12-14 23:26:30 +08:00
MrZ626
2f359025f2 主菜单小彩蛋 2020-12-14 23:26:30 +08:00
MrZ626
d5fd82e8d6 微调中文tips 2020-12-14 23:26:30 +08:00
MrZ626
123e453bd2 整理代码,lang模块功能特化 2020-12-14 23:26:30 +08:00
MrZ626
d4075c6fa9 修复开局提前hold+硬降会死的问题(魔幻修法) 2020-12-14 23:26:30 +08:00
MrZ626
dd1189c5ff 给录像流编码和其他游戏相关全局函数加注释 2020-12-14 23:26:30 +08:00
MrZ626
e5af9f53e6 language模块完全排除外部数据 2020-12-14 23:26:30 +08:00
MrZ626
80eb2e8371 修复从无移动和无旋转模式返回后目标场景不对 2020-12-14 23:26:30 +08:00
MrZ626
284d02d172 key缺少文本时也会像按钮一样显示内部名称 2020-12-14 23:26:30 +08:00
MrZ626
2124b24f61 虚拟按键触摸权重取值调整到0~1 2020-12-14 23:26:30 +08:00
MrZ626
fc39239be1 玩家ui场地坐标原点向下移动70单位 2020-12-14 23:26:30 +08:00
MrZ626
d018265175 提取自定义游戏加载用函数 2020-12-14 23:26:29 +08:00
MrZ626
62a039b672 播放录像时暂停不会计暂停时间 2020-12-14 23:26:29 +08:00
MrZ626
9e1df8b804 新增玩家排版函数,不再需要生成玩家同时指定坐标,添加动画位移方法;玩家task升级为同task模块 2020-12-14 23:26:29 +08:00
MrZ626
fcac817f11 Task库细节修正 2020-12-14 23:26:29 +08:00
MrZ626
7d89676df6 修复场景不存在socketRead事件时报错 2020-12-14 23:26:29 +08:00
MrZ626
96987add7b 聊天室不会按一次esc就退出 2020-12-14 23:26:29 +08:00
MrZ626
88a5e50256 由于不使用游戏内注册,所以暂时关闭注册入口 2020-12-14 23:26:29 +08:00
MrZ626
7bc3f83e7b 修复游戏中途进入设置界面返回后的背景错误 2020-12-14 23:26:29 +08:00
MrZ626
6bb6fb64d8 修复两个无尽模式无条件解锁 2020-12-14 23:26:29 +08:00
MrZ626
e7b737cba2 修复聊天室清空按钮出现时机错误 2020-12-14 23:26:29 +08:00
1072 changed files with 49055 additions and 27702 deletions

View File

@@ -0,0 +1,8 @@
---
name: Bug report (bluescreen crash) Bug报告 (蓝屏报错)
about: Create a report of problems which made the crash with a bluescreen
---
Screenshot with crash information (*Image(s) Here*):
If you can reproduce it, write the steps here. If you can't, try to describe the exactly time the game crash, like pressing which key or which button (*Details Here*)

View File

@@ -0,0 +1,8 @@
---
name: Bug report (unintended behaviors) Bug报告 (奇怪的现象)
about: Create a report of unintended behaviors
---
Screenshot with unintended behaviors (*Image(s) Here*):
If you can reproduce it, write the steps here. If you can't, try to describe the exactly time the game crash, like pressing which key or which button (*Details Here*):

View File

@@ -0,0 +1,4 @@
---
name: Feature Request 添加新功能
about: Suggest an idea that may improve Techmino 提一些有意思的新想法,让Techmino越来越好!
---

View File

@@ -0,0 +1,24 @@
name: 'Automatic Test'
description: 'Check for obvious errors.'
runs:
using: "composite"
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-love
with:
file-path: Techmino.love
- name: Download love
shell: bash
run: |
curl -L https://github.com/love2d/love/releases/download/11.3/love-11.3-linux-x86_64.tar.gz | tar xz
- name: Prepare PulseAudio
shell: bash
run: |
sudo apt-get update
sudo apt-get install pulseaudio pulseaudio-utils pavucontrol alsa-oss alsa-utils -y
- name: Run automated test
uses: GabrielBB/xvfb-action@v1
with:
run: |
./dest/love Techmino.love --test

102
.github/actions/build-android/action.yml vendored Normal file
View File

@@ -0,0 +1,102 @@
name: 'build Android'
description: 'build Android package'
inputs:
type:
required: true
apkCode:
required: true
name:
required: true
file-path:
required: true
SIGNING_KEY:
required: true
KEY_STORE_PASSWORD:
required: true
ALIAS:
required: true
KEY_PASSWORD:
required: true
runs:
using: "composite"
steps:
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Clone love-android
shell: bash
run: |
git clone --recurse-submodules https://github.com/26F-Studio/love-android -b CI --depth 1 --shallow-submodules
- uses: ./.github/actions/build-love
with:
file-path: love-android/app/src/main/assets/game.love
- name: Download ColdClear arm64-v8a
uses: ./.github/actions/get-cc
with:
arch: android_aarch64
dir: ColdClear/arm64-v8a
- name: Process ColdClear arm64-v8a
shell: bash
run: |
mkdir -p love-android/app/libs/arm64-v8a
mv ColdClear/arm64-v8a/love-11.3-android/lib/arm64-v8a/libcold_clear.so love-android/app/libs/arm64-v8a
mkdir -p libAndroid/arm64-v8a
mv ColdClear/arm64-v8a/libs/arm64-v8a/libCCloader.so libAndroid/arm64-v8a
- name: Download ColdClear armeabi-v7a
uses: ./.github/actions/get-cc
with:
arch: android_armv7
dir: ColdClear/armeabi-v7a
- name: Process ColdClear armeabi-v7a
shell: bash
run: |
mkdir -p love-android/app/libs/armeabi-v7a
mv ColdClear/armeabi-v7a/love-11.3-android/lib/armeabi-v7a/libcold_clear.so love-android/app/libs/armeabi-v7a
mkdir -p libAndroid/armeabi-v7a
mv ColdClear/armeabi-v7a/libs/armeabi-v7a/libCCloader.so libAndroid/armeabi-v7a
- name: Pack ColdClear
shell: bash
run: |
7z a -tzip love-android/app/src/main/assets/game.love libAndroid
- name: update Android information
shell: python
run: |
if '${{ inputs.type }}' == 'Release':
appName = 'Techmino'
packageName = 'org.love2d.MrZ.Techmino'
edition = 'release'
elif '${{ inputs.type }}' == 'Snapshot':
appName = 'Techmino_Snapshot'
packageName = 'org.love2d.MrZ.Techmino.Snapshot'
edition = 'snapshot'
with open('./love-android/app/src/main/AndroidManifest.xml', "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@appName', appName)\
.replace('@edition', edition)
file.seek(0)
file.truncate()
file.write(data)
with open("./love-android/app/build.gradle", "r+", encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@packageName', packageName)\
.replace('@versionCode', '${{ inputs.apkCode }}')\
.replace('@versionName', '${{ inputs.name }}')\
.replace('@storePassword', '${{ inputs.KEY_STORE_PASSWORD }}')\
.replace('@keyAlias', '${{ inputs.ALIAS }}')\
.replace('@keyPassword', '${{ inputs.KEY_PASSWORD }}')
file.seek(0)
file.truncate()
file.write(data)
- name: Build Techmino
shell: bash
run: |
echo "${{ inputs.SIGNING_KEY }}" | base64 -d > love-android/app/android.keystore
chmod 777 love-android/gradlew
cd love-android/
./gradlew assembleRelease
- name: rename apk
shell: bash
run: mv love-android/app/build/outputs/apk/release/app-release.apk ${{ inputs.file-path }}

96
.github/actions/build-ios/action.yml vendored Normal file
View File

@@ -0,0 +1,96 @@
name: 'build iOS'
description: 'build iOS package'
inputs:
name:
required: true
description: "Version name"
type:
required: true
description: "Build type"
APPLE_API_ID:
required: true
description: "API key ID"
APPLE_API_ISSUER:
required: true
description: "API issuer ID"
APPLE_API_KEY:
required: true
description: "API key content"
APPLE_APP_BUILD:
required: true
description: "Build number"
APPLE_APP_CHANGELOG:
required: true
description: "Changelog"
APPLE_APP_ID:
required: true
description: "AppStore Apple ID"
APPLE_APP_IDENTIFIER:
required: true
description: "Bundle ID"
APPLE_APP_PROFILE:
required: true
description: "Provisioning Profile specifer"
APPLE_KEYCHAIN_NAME:
required: true
description: "Temporary keychain name"
APPLE_KEYCHAIN_PWD:
required: true
description: "Temporary keychain password"
FASTLANE_DISCORD_WEBHOOK:
required: true
description: "Fastlane Discord webhook"
FASTLANE_ACTION_ID:
required: true
description: "Fastlane Action ID"
FASTLANE_MATCH_PWD:
required: true
description: "Fastlane Match description password"
FASTLANE_MATCH_TOKEN:
required: true
description: "Fastlane Match Github token"
runs:
using: "composite"
steps:
- uses: ./.github/actions/build-love
- name: Checkout source codes
uses: actions/checkout@v2
with:
repository: '26F-Studio/Techmino-iOS'
path: 'Techmino-iOS'
- name: Download CCloader
uses: ./.github/actions/get-cc
with:
arch: iOS
- name: Update source codes
shell: bash
run: |
mv Techmino.love Techmino-iOS/platform/xcode
mv libcold_clear.a Techmino-iOS/platform/xcode
mv libCCloader.a Techmino-iOS/platform/xcode
- name: Run fastlane
uses: maierj/fastlane-action@v2.0.1
with:
lane: '${{ inputs.type }}'
subdirectory: 'Techmino-iOS/platform/xcode'
env:
ACTION_ID: '${{ inputs.FASTLANE_ACTION_ID }}'
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_BUILD: '${{ inputs.APPLE_APP_BUILD }}'
APP_CHANGELOG: '${{ inputs.APPLE_APP_CHANGELOG }}'
APP_ID: '${{ inputs.APPLE_APP_ID }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
APP_PROFILE: '${{ inputs.APPLE_APP_PROFILE }}'
APP_VERSION: '${{ inputs.name }}'
DISCORD_WEBHOOK: '${{ inputs.FASTLANE_DISCORD_WEBHOOK }}'
KEYCHAIN_NAME: '${{ inputs.APPLE_KEYCHAIN_NAME }}'
KEYCHAIN_PWD: '${{ inputs.APPLE_KEYCHAIN_PWD }}'
MATCH_PASSWORD: '${{ inputs.FASTLANE_MATCH_PWD }}'
MATCH_TOKEN: '${{ inputs.FASTLANE_MATCH_TOKEN }}'
- name: Move ipa
shell: bash
run: |
mv Techmino-iOS/platform/xcode/Techmino.ipa Techmino.ipa

40
.github/actions/build-linux/action.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: 'build Linux'
description: 'build Linux package'
inputs:
file-path:
required: false
default: Techmino.AppImage
icon:
required: true
runs:
using: "composite"
steps:
- name: Download AppImageKit
shell: bash
run: |
curl -OL https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
- name: Download love
shell: bash
run: |
curl -OL https://github.com/love2d/love/releases/download/11.3/love-11.3-x86_64.AppImage
chmod 777 love-11.3-x86_64.AppImage
./love-11.3-x86_64.AppImage --appimage-extract
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: linux
- name: Pack Techmino
shell: bash
run: |
rm -rf squashfs-root/love squashfs-root/love.desktop squashfs-root/love.svg squashfs-root/.DirIcon
mv .github/build/Linux/love.template squashfs-root/love
mv .github/build/Linux/Techmino.desktop.template squashfs-root/Techmino.desktop
mv ${{ inputs.icon }} squashfs-root/icon.png
cp squashfs-root/icon.png squashfs-root/.DirIcon
chmod 777 squashfs-root/love
mkdir -p squashfs-root/usr/share/Techmino
mv media parts Zframework conf.lua main.lua version.lua legals.md license.txt squashfs-root/usr/share/Techmino
mv CCloader.so squashfs-root/usr/share/Techmino
mv libcold_clear.so squashfs-root/usr/lib
chmod 777 appimagetool-x86_64.AppImage
./appimagetool-x86_64.AppImage squashfs-root ${{ inputs.file-path }}

11
.github/actions/build-love/action.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
name: 'build love'
description: 'build love file'
inputs:
file-path:
required: true
default: Techmino.love
runs:
using: "composite"
steps:
- run: 7z a -tzip ${{ inputs.file-path }} media parts Zframework conf.lua main.lua version.lua legals.md license.txt
shell: bash

152
.github/actions/build-macos/action.yml vendored Normal file
View File

@@ -0,0 +1,152 @@
name: 'build Mac OS'
description: 'build Mac OS package'
inputs:
name:
required: true
description: "Version name"
icon:
required: true
description: "App icons (.icns)"
APPLE_API_ID:
required: true
description: "API key ID"
APPLE_API_ISSUER:
required: true
description: "API issuer ID"
APPLE_API_KEY:
required: true
description: "API key content"
APPLE_APP_IDENTIFIER:
required: true
description: "Bundle ID"
APPLE_KEYCHAIN_NAME:
required: true
description: "Temporary keychain name"
APPLE_KEYCHAIN_PWD:
required: true
description: "Temporary keychain password"
FASTLANE_MATCH_PWD:
required: true
description: "Fastlane Match description password"
FASTLANE_MATCH_TOKEN:
required: true
description: "Fastlane Match Github token"
runs:
using: "composite"
steps:
- uses: ./.github/actions/build-love
- name: Checkout template
uses: actions/checkout@v2
with:
repository: '26F-Studio/Techmino-macOS'
path: 'Techmino-macOS'
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: macOS
- name: Fastlane match
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'get_cert'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
KEYCHAIN_NAME: '${{ inputs.APPLE_KEYCHAIN_NAME }}'
KEYCHAIN_PWD: '${{ inputs.APPLE_KEYCHAIN_PWD }}'
MATCH_PASSWORD: '${{ inputs.FASTLANE_MATCH_PWD }}'
MATCH_TOKEN: '${{ inputs.FASTLANE_MATCH_TOKEN }}'
- name: Modify template
shell: python
run: |
import datetime
from io import open
thisYear = str(datetime.datetime.today().year)
with open('./.github/build/macOS/info.plist.template', 'r', encoding='utf-8') as file:
data = file.read()
data = data\
.replace('@versionName', '${{ inputs.name }}'[1:])\
.replace('@thisYear', thisYear)\
.replace('@bundleId', '${{ inputs.APPLE_APP_IDENTIFIER }}')
with open('./Techmino-macOS/Techmino.app/Contents/info.plist', 'w+', encoding='utf-8') as file:
file.write(data)
- name: Pack
shell: bash
run: |
mv Techmino.love Techmino-macOS/Techmino.app/Contents/Resources
mv CCloader.dylib Techmino-macOS/Techmino.app/Contents/Frameworks
mv ${{ inputs.icon }} Techmino-macOS/Techmino.app/Contents/Resources/iconfile.icns
chmod +x Techmino-macOS/Techmino.app/Contents/Frameworks/CCloader.dylib
chmod +x Techmino-macOS/Techmino.app/Contents/MacOS/love
- name: Codesign executable
shell: bash
run: |
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
codesign --timestamp --force --strict --deep -v \
--options runtime \
-s ${BASH_REMATCH[1]} \
--entitlements Techmino-macOS/love.entitlements \
Techmino-macOS/Techmino.app
- name: Fastlane notarize
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'make_safe'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
NOTARIZE_OBJECT: 'Techmino.app'
- name: Create DMG file
shell: bash
run: |
brew install create-dmg
create-dmg \
--volname "Techmino for MacOS" \
--volicon "./.github/build/macOS/Techminodisk.icns" \
--window-pos 200 120 \
--window-size 800 500 \
--icon-size 100 \
--icon "Techmino.app" 239 203 \
--background ".github/build/macOS/backgroundImage.tiff" \
--hide-extension "Techmino.app" \
--app-drop-link 565 203 \
"Techmino-macOS/Techmino-macOS.dmg" \
"Techmino-macOS/Techmino.app/"
- name: Codesign DMG
shell: bash
run: |
security unlock-keychain -p ${{ inputs.TEMP_KEYCHAIN_PASSWORD }} \
~/Library/Keychains/${{ inputs.TEMP_KEYCHAIN_USER }}-db
[[ $(security find-identity) =~ ([0-9A-F]{40}) ]]
codesign --timestamp --force --strict --deep -v \
--options runtime \
-s ${BASH_REMATCH[1]} \
--entitlements Techmino-macOS/love.entitlements \
Techmino-macOS/Techmino-macOS.dmg
- name: Fastlane notarize
uses: maierj/fastlane-action@v2.0.1
with:
lane: 'make_safe'
subdirectory: 'Techmino-macOS'
env:
API_ID: '${{ inputs.APPLE_API_ID }}'
API_ISSUER: '${{ inputs.APPLE_API_ISSUER }}'
API_KEY: '${{ inputs.APPLE_API_KEY }}'
APP_IDENTIFIER: '${{ inputs.APPLE_APP_IDENTIFIER }}'
NOTARIZE_OBJECT: 'Techmino-macOS.dmg'
- name: Finalize
shell: bash
run: |
mv Techmino-macOS/Techmino-macOS.dmg Techmino.dmg
spctl -a -t open --context context:primary-signature -vv Techmino.dmg

View File

@@ -0,0 +1,60 @@
name: 'build Windows'
description: 'build Windows package'
inputs:
love-url:
required: true
love-dir:
required: true
arch:
required: true
version:
required: true
icon:
required: true
runs:
using: "composite"
steps:
- name: Download love
uses: ./.github/actions/get-unzip
with:
url: ${{ inputs.love-url }}
- name: move love
shell: bash
run: mv ${{ inputs.love-dir }} love
- name: Download ColdClear
uses: ./.github/actions/get-cc
with:
arch: ${{ inputs.arch }}
- name: Download ResourceHacker
uses: ./.github/actions/get-unzip
with:
url: http://www.angusj.com/resourcehacker/resource_hacker.zip
- uses: ./.github/actions/build-love
- name: update Windows template
shell: python
run: |
Version = '${{ inputs.version }}'.replace('V', '')
FileVersion = (f"{Version.replace('.', ',')},0")
with open('./.github/build/Windows/Techmino.rc.template', 'r', encoding='utf8') as file:
data = file.read()
data = data\
.replace('@FileVersion', FileVersion)\
.replace('@Version', Version)
with open('Techmino.rc', 'w+', encoding='utf8') as file:
file.write(data)
- name: Pack Techmino
shell: pwsh
run: |
cmd /c copy /b .\love\love.exe + .\Techmino.love .\love\Techmino.exe
del .\love\love.exe
del .\love\lovec.exe
del .\love\game.ico
del .\love\love.ico
del .\love\changes.txt
del .\love\readme.txt
move .\cold_clear.dll .\love
move .\CCloader.dll .\love
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action delete -mask ICONGROUP,,'
cmd /c '.\ResourceHacker.exe -open .\Techmino.rc -save .\Techmino.res -action compile'
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action addoverwrite -res "${{ inputs.icon }}" -mask ICONGROUP,1,'
cmd /c '.\ResourceHacker.exe -open .\love\Techmino.exe -save .\love\Techmino.exe -action addoverwrite -res ".\Techmino.res" -mask VERSIONINFO,1,'

32
.github/actions/get-cc/action.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: 'get cc'
description: 'download cc into specific dir'
inputs:
tag:
required: false
default:
arch:
required: true
dir:
required: false
default: '.'
repo:
required: false
default: 26F-Studio/cold_clear_ai_love2d_wrapper
temp-file:
required: false
default: temp.zip
runs:
using: "composite"
steps:
- run: |
echo "::set-output name=tag::"$(if [ -z "${{ inputs.tag }}" ]
then curl -w '%{url_effective}' -I -L -s -S https://github.com/${{ inputs.repo }}/releases/latest -o /dev/null | grep -o '\<[^/]*$'
else echo ${{ inputs.tag }}
fi)
id: get-tag
shell: bash
- uses: ./.github/actions/get-unzip
with:
url: https://github.com/${{ inputs.repo }}/releases/download/${{ steps.get-tag.outputs.tag }}/${{ inputs.arch }}.zip
dir: ${{ inputs.dir }}
temp-file: ${{ inputs.temp-file }}

18
.github/actions/get-unzip/action.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
name: 'get and unzip'
description: 'cURL and then 7-zip x'
inputs:
url:
required: true
dir:
required: false
default: '.'
temp-file:
required: false
default: temp.zip
runs:
using: "composite"
steps:
- run: curl -L ${{ inputs.url }} -o ${{ inputs.temp-file }}
shell: bash
- run: 7z x ${{ inputs.temp-file }} -o${{ inputs.dir }}
shell: bash

View File

@@ -0,0 +1,37 @@
name: 'update version'
description: 'common update logic for snapshot and release'
inputs:
commit:
required: false
type:
required: true
runs:
using: "composite"
steps:
- shell: python
name: update snapshot saving folder
run: |
from io import open
if '${{ inputs.type }}'.lower() != 'snapshot':
exit(0)
with open('conf.lua', 'r+', encoding='utf-8') as file:
data = file.read()
data = data.replace("t.identity='Techmino'--Saving folder", "t.identity='Techmino_Snapshot'--Saving folder")
file.seek(0)
file.truncate()
file.flush()
file.write(data)
- shell: python
run: |
from io import open
import re
with open('version.lua', 'r+', encoding='utf-8') as file:
commitHash = '${{ inputs.commit }}'
if commitHash != '':
commitHash = '@' + commitHash[0:4]
data = file.read()
data = re.sub('(\d)"', r'\1' + commitHash + '"', data, 1)
file.seek(0)
file.truncate()
file.flush()
file.write(data)

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Name=Techmino Alpha
Comment=Techmino is fun!
Exec=wrapper-love %f
Type=Application
Categories=Game;
Terminal=false
Icon=icon

BIN
.github/build/Linux/icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
.github/build/Linux/icon_snapshot.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

5
.github/build/Linux/love.template vendored Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/sh
export LOVE_LAUNCHER_LOCATION="$(dirname "$(which "$0")")"
export LD_LIBRARY_PATH="${LOVE_LAUNCHER_LOCATION}/lib/x86_64-linux-gnu:${LOVE_LAUNCHER_LOCATION}/usr/bin:${LOVE_LAUNCHER_LOCATION}/usr/lib:${LOVE_LAUNCHER_LOCATION}/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
/sbin/ldconfig -p | grep -q libstdc++ || export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${LOVE_LAUNCHER_LOCATION}/libstdc++/"
exec ${LOVE_BIN_WRAPPER} "${LOVE_LAUNCHER_LOCATION}/usr/bin/love" "${LOVE_LAUNCHER_LOCATION}/usr/share/Techmino"

View File

@@ -0,0 +1,23 @@
1 VERSIONINFO
FILEVERSION @FileVersion
PRODUCTVERSION @FileVersion
FILEOS 0x40004
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "040904B0"
{
VALUE "FileDescription", "Techmino Alpha"
VALUE "CompanyName", "26F Studio"
VALUE "LegalCopyright", "Copyright @ 26F Studio"
VALUE "ProductName", "Techmino"
VALUE "ProductVersion", "@Version"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409 0x04E4
}
}

BIN
.github/build/Windows/icon.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
.github/build/Windows/icon.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
.github/build/Windows/icon_snapshot.ico vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
.github/build/macOS/Techminodisk.icns vendored Normal file

Binary file not shown.

BIN
.github/build/macOS/backgroundImage.tiff vendored Normal file

Binary file not shown.

BIN
.github/build/macOS/icon.icns vendored Normal file

Binary file not shown.

BIN
.github/build/macOS/icon_snapshot.icns vendored Normal file

Binary file not shown.

56
.github/build/macOS/info.plist.template vendored Normal file
View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>19B88</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>love</string>
<key>CFBundleIconFile</key>
<string>iconfile</string>
<key>CFBundleIdentifier</key>
<string>@bundleId</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Techmino</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>@versionName</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>11C504</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
<string>19B90</string>
<key>DTSDKName</key>
<string>macosx10.15</string>
<key>DTXcode</key>
<string>1130</string>
<key>DTXcodeBuild</key>
<string>11C504</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key>
<string>10.7</string>
<key>NSHighResolutionCapable</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>©2020-@thisYear 26F Studio, GNU LGPLv3.0</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<false/>
</dict>
</plist>

View File

@@ -1,38 +0,0 @@
name: Techmino CI
on:
push:
branches: [ ci ]
pull_request:
branches: [ ci ]
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
lfs: true
- name: Download love
run: |
curl -LO https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
7z x love-11.3-win64.zip
- name: Download ColdClear
run: |
curl -LO https://github.com/26F-Studio/Techmino/releases/download/coldclear/coldclear.zip
7z x coldclear.zip -ocoldclear
move coldclear\win64\cold_clear.dll love-11.3-win64
move coldclear\win64\CCloader.dll love-11.3-win64
- name: Pack Techmino
shell: cmd
run: |
7z a game.zip BGM document image modes parts SFX VOICE Zframework conf.lua font.ttf main.lua
move game.zip game.love
copy /b love-11.3-win64\love.exe + game.love love-11.3-win64\Techmino.exe
del love-11.3-win64\love.exe
del love-11.3-win64\lovec.exe
- name: Artifact
uses: actions/upload-artifact@v1.0.0
with:
name: Techmino_win64
path: love-11.3-win64

203
.github/workflows/dev.yml vendored Normal file
View File

@@ -0,0 +1,203 @@
name: Techmino Develop CI
on:
push:
branches: [ main, ci* ]
pull_request:
branches: [ main ]
jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
commit: ${{ steps.actual-get-info.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
run: |
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
automatic-test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/automatic-test
build-windows:
runs-on: windows-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-windows
with:
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
love-dir: love-11.3-win64
arch: win64
version: ${{ needs.get-info.outputs.name }}
icon: .\.github\build\Windows\icon_snapshot.ico
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Windows
path: love
build-linux:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-linux
with:
icon: .github/build/Linux/icon_snapshot.png
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Linux
path: Techmino.AppImage
build-android:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-android
with:
type: Snapshot
apkCode: ${{ needs.get-info.outputs.apkCode }}
name: ${{ needs.get-info.outputs.name }}
file-path: Techmino_Snapshot.apk
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Android
path: Techmino_Snapshot.apk
build-android-mini:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- name: remove media
run: |
rm -rf media/music media/effect media/vocal
- uses: ./.github/actions/build-android
with:
type: Snapshot
apkCode: ${{ needs.get-info.outputs.apkCode }}
name: ${{ needs.get-info.outputs.name }}
file-path: Techmino_Snapshot_Mini.apk
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Android_Mini
path: Techmino_Snapshot_Mini.apk
build-macOS:
runs-on: macos-10.15
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-macos
with:
name: ${{ needs.get-info.outputs.name }}
icon: .github/build/macOS/icon_snapshot.icns
APPLE_API_ID: '${{ secrets.APPLE_API_ID }}'
APPLE_API_ISSUER: '${{ secrets.APPLE_API_ISSUER }}'
APPLE_API_KEY: '${{ secrets.APPLE_API_KEY }}'
APPLE_APP_IDENTIFIER: '${{ secrets.APPLE_APP_IDENTIFIER }}'
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_macOS
path: Techmino.dmg
build-iOS:
runs-on: macos-latest
if: (!startsWith( github.ref , 'refs/heads/ci-')) || startsWith( github.ref , 'refs/heads/ci-ios-')
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-ios
with:
name: ${{ needs.get-info.outputs.name }}
type: 'dev'
APPLE_API_ID: '${{ secrets.APPLE_API_ID }}'
APPLE_API_ISSUER: '${{ secrets.APPLE_API_ISSUER }}'
APPLE_API_KEY: '${{ secrets.APPLE_API_KEY }}'
APPLE_APP_BUILD: '${{ needs.get-info.outputs.code }}.2.${{ github.run_number }}.${{ github.run_attempt }}'
APPLE_APP_CHANGELOG: '${{ github.event.commits[0].message }}'
APPLE_APP_ID: '${{ secrets.APPLE_APP_ID }}'
APPLE_APP_IDENTIFIER: '${{ secrets.APPLE_APP_IDENTIFIER }}'
APPLE_APP_PROFILE: '${{ secrets.APPLE_APP_PROFILE }}'
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
FASTLANE_ACTION_ID: '${{ github.run_id }}'
FASTLANE_DISCORD_WEBHOOK: '${{ secrets.FASTLANE_DISCORD_WEBHOOK }}'
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_iOS
path: Techmino.ipa
build-love:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-love
with:
file-path: Techmino.love
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_${{ needs.get-info.outputs.name }}_${{ GITHUB.RUN_NUMBER }}_${{ needs.get-info.outputs.commit }}_Love
path: Techmino.love

28
.github/workflows/getVersion.lua vendored Normal file
View File

@@ -0,0 +1,28 @@
local arg=arg[1]
if arg=="-apkCode"then
local code=require"version".apkCode
print(code)
elseif arg=="-code"then
local str=require"version".code
print(str)
elseif arg=="-name"then
local str=require"version".string
print(str)
elseif arg=="-release"then
local str=require"version".string:gsub("V","",1)
print(str)
elseif arg=="-updateTitle"then
local note=require"parts.updateLog"
local p1=note:find("\n%d")+1
local p2=note:find("\n",p1)-1
note=note:sub(p1,p2)
print(note)
elseif arg=="-updateNote"then
local note=require"parts.updateLog"
local p1=note:find("\n",note:find("\n%d")+1)+1
local p2=note:find("\n%d",p1+1)
note=note:sub(p1,p2-2)
:gsub(" ","- ")
:gsub(" ","# ")
print(note)
end

189
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,189 @@
name: Techmino Release CI
on:
push:
tags:
- "v*"
jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
release: ${{ steps.actual-get-info.outputs.release }}
updateTitle: ${{ steps.actual-get-info.outputs.updateTitle }}
updateNote: ${{ steps.actual-get-info.outputs.updateNote }}
commit: ${{ steps.actual-get-info.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
run: |
UPDATE_NOTE=$(lua .github/workflows/getVersion.lua -updateNote)
UPDATE_NOTE="${UPDATE_NOTE//'%'/'%25'}"
UPDATE_NOTE="${UPDATE_NOTE//$'\n'/'%0A'}"
UPDATE_NOTE="${UPDATE_NOTE//$'\r'/'%0D'}"
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=release::$(lua .github/workflows/getVersion.lua -release)"
echo "::set-output name=updateTitle::$(lua .github/workflows/getVersion.lua -updateTitle)"
echo "::set-output name=updateNote::$UPDATE_NOTE"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
build-windows-x64:
runs-on: windows-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-windows
with:
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
love-dir: love-11.3-win64
arch: win64
version: ${{ needs.get-info.outputs.release }}
icon: .\.github\build\Windows\icon.ico
- name: Pack Techmino
run: 7z a -tzip .\Techmino_a${{ needs.get-info.outputs.release }}_Win64.zip .\love
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_Win64.zip
build-windows-x86:
runs-on: windows-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-windows
with:
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win32.zip
love-dir: love-11.3-win32
arch: win32
version: ${{ needs.get-info.outputs.release }}
icon: .\.github\build\Windows\icon.ico
- name: Pack Techmino
run: 7z a -tzip .\Techmino_a${{ needs.get-info.outputs.release }}_Win32.zip .\love
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_Win32.zip
build-linux:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-linux
with:
file-path: Techmino_a${{ needs.get-info.outputs.release }}_Linux.AppImage
icon: .github/build/Linux/icon.png
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_Linux.AppImage
build-android:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-android
with:
type: Release
apkCode: ${{ needs.get-info.outputs.apkCode }}
name: ${{ needs.get-info.outputs.name }}
file-path: Techmino_a${{ needs.get-info.outputs.release }}_Android.apk
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_Android.apk
build-macOS:
runs-on: macos-10.15
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-macos
with:
name: ${{ needs.get-info.outputs.name }}
icon: .github/build/macOS/icon.icns
APPLE_API_ID: "${{ secrets.APPLE_API_ID }}"
APPLE_API_ISSUER: "${{ secrets.APPLE_API_ISSUER }}"
APPLE_API_KEY: "${{ secrets.APPLE_API_KEY }}"
APPLE_APP_IDENTIFIER: "${{ secrets.APPLE_APP_IDENTIFIER }}"
APPLE_KEYCHAIN_NAME: "${{ secrets.APPLE_KEYCHAIN_NAME }}"
APPLE_KEYCHAIN_PWD: "${{ secrets.APPLE_KEYCHAIN_PWD }}"
FASTLANE_MATCH_PWD: "${{ secrets.FASTLANE_MATCH_PWD }}"
FASTLANE_MATCH_TOKEN: "${{ secrets.FASTLANE_MATCH_TOKEN }}"
- name: Pack Techmino
run: |
mv Techmino.dmg Techmino_a${{ needs.get-info.outputs.release }}_MacOS.dmg
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_MacOS.dmg
build-iOS:
runs-on: macos-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
- uses: ./.github/actions/build-ios
with:
name: ${{ needs.get-info.outputs.name }}
type: "release"
APPLE_API_ID: "${{ secrets.APPLE_API_ID }}"
APPLE_API_ISSUER: "${{ secrets.APPLE_API_ISSUER }}"
APPLE_API_KEY: "${{ secrets.APPLE_API_KEY }}"
APPLE_APP_BUILD: "${{ needs.get-info.outputs.code }}.0.${{ github.run_number }}.${{ github.run_attempt }}"
APPLE_APP_CHANGELOG: "${{ needs.get-info.outputs.updateNote }}"
APPLE_APP_ID: "${{ secrets.APPLE_APP_ID }}"
APPLE_APP_IDENTIFIER: "${{ secrets.APPLE_APP_IDENTIFIER }}"
APPLE_APP_PROFILE: "${{ secrets.APPLE_APP_PROFILE }}"
APPLE_KEYCHAIN_NAME: "${{ secrets.APPLE_KEYCHAIN_NAME }}"
APPLE_KEYCHAIN_PWD: "${{ secrets.APPLE_KEYCHAIN_PWD }}"
FASTLANE_ACTION_ID: "${{ github.run_id }}"
FASTLANE_DISCORD_WEBHOOK: "${{ secrets.FASTLANE_DISCORD_WEBHOOK }}"
FASTLANE_MATCH_PWD: "${{ secrets.FASTLANE_MATCH_PWD }}"
FASTLANE_MATCH_TOKEN: "${{ secrets.FASTLANE_MATCH_TOKEN }}"
- name: Rename ipa
shell: bash
run: |
mv Techmino.ipa Techmino_a${{ needs.get-info.outputs.release }}_iOS.ipa
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
files: Techmino_a${{ needs.get-info.outputs.release }}_iOS.ipa
Add-Release-note:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- name: Release
uses: softprops/action-gh-release@v1
with:
name: ${{ needs.get-info.outputs.updateTitle }}
body: ${{ needs.get-info.outputs.updateNote }}

154
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,154 @@
name: Techmino Test CI
on:
push:
tags:
- 'pre*'
jobs:
get-info:
runs-on: ubuntu-20.04
outputs:
name: ${{ steps.actual-get-info.outputs.name }}
apkCode: ${{ steps.actual-get-info.outputs.apkCode }}
code: ${{ steps.actual-get-info.outputs.code }}
release: ${{ steps.actual-get-info.outputs.release }}
commit: ${{ steps.actual-get-info.outputs.commit }}
steps:
- uses: actions/checkout@v2
- name: Install lua
run: |
sudo apt-get install lua5.3 -y
- name: Get Version
id: actual-get-info
run: |
echo "::set-output name=name::$(lua .github/workflows/getVersion.lua -name)"
echo "::set-output name=apkCode::$(lua .github/workflows/getVersion.lua -apkCode)"
echo "::set-output name=code::$(lua .github/workflows/getVersion.lua -code)"
echo "::set-output name=release::$(lua .github/workflows/getVersion.lua -release)"
echo "::set-output name=commit::$(git rev-parse --short ${{ GITHUB.SHA }})"
build-windows:
runs-on: windows-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-windows
with:
love-url: https://github.com/love2d/love/releases/download/11.3/love-11.3-win64.zip
love-dir: love-11.3-win64
arch: win64
version: ${{ needs.get-info.outputs.name }}
icon: .\.github\build\Windows\icon_snapshot.ico
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_Windows
path: love
build-linux:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-linux
with:
icon: .github/build/Linux/icon_snapshot.png
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_Linux
path: Techmino.AppImage
build-android:
runs-on: ubuntu-20.04
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-android
with:
type: Snapshot
apkCode: ${{ needs.get-info.outputs.apkCode }}
name: ${{ needs.get-info.outputs.name }}
file-path: Techmino_Snapshot.apk
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
ALIAS: ${{ secrets.ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_Android
path: Techmino_Snapshot.apk
build-macOS:
runs-on: macos-10.15
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-macos
with:
name: ${{ needs.get-info.outputs.name }}
icon: .github/build/macOS/icon_snapshot.icns
APPLE_API_ID: '${{ secrets.APPLE_API_ID }}'
APPLE_API_ISSUER: '${{ secrets.APPLE_API_ISSUER }}'
APPLE_API_KEY: '${{ secrets.APPLE_API_KEY }}'
APPLE_APP_IDENTIFIER: '${{ secrets.APPLE_APP_IDENTIFIER }}'
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_MacOS
path: Techmino.dmg
build-iOS:
runs-on: macos-latest
needs: get-info
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/update-version
with:
commit: ${{ needs.get-info.outputs.commit }}
type: snapshot
- uses: ./.github/actions/build-ios
with:
name: ${{ needs.get-info.outputs.name }}
type: 'test'
APPLE_API_ID: '${{ secrets.APPLE_API_ID }}'
APPLE_API_ISSUER: '${{ secrets.APPLE_API_ISSUER }}'
APPLE_API_KEY: '${{ secrets.APPLE_API_KEY }}'
APPLE_APP_BUILD: '${{ needs.get-info.outputs.code }}.1.${{ github.run_number }}.${{ github.run_attempt }}'
APPLE_APP_CHANGELOG: '${{ github.event.commits[0].message }}'
APPLE_APP_ID: '${{ secrets.APPLE_APP_ID }}'
APPLE_APP_IDENTIFIER: '${{ secrets.APPLE_APP_IDENTIFIER }}'
APPLE_APP_PROFILE: '${{ secrets.APPLE_APP_PROFILE }}'
APPLE_KEYCHAIN_NAME: '${{ secrets.APPLE_KEYCHAIN_NAME }}'
APPLE_KEYCHAIN_PWD: '${{ secrets.APPLE_KEYCHAIN_PWD }}'
FASTLANE_ACTION_ID: '${{ github.run_id }}'
FASTLANE_DISCORD_WEBHOOK: '${{ secrets.FASTLANE_DISCORD_WEBHOOK }}'
FASTLANE_MATCH_PWD: '${{ secrets.FASTLANE_MATCH_PWD }}'
FASTLANE_MATCH_TOKEN: '${{ secrets.FASTLANE_MATCH_TOKEN }}'
- name: Upload
uses: actions/upload-artifact@v2
with:
name: Techmino_pre${{ needs.get-info.outputs.release }}_${{ needs.get-info.outputs.commit }}_iOS
path: Techmino.ipa

8
.gitignore vendored
View File

@@ -1,4 +1,8 @@
.vscode
libAndroid
font.ttf
note.lua
*.ini
.DS_Store
Thumbs.db
Icon?
.Trash
.file

165
LICENSE
View File

@@ -1,165 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

View File

@@ -1,44 +1,56 @@
local BGlist={
none={
draw=function()
love.graphics.clear(.15,.15,.15)
end
}
local gc_clear=love.graphics.clear
local BGs={
none={draw=function()gc_clear(.08,.08,.084)end}
}
local BGlist={'none'}
local BG={
cur="none",
init=nil,
resize=nil,
update=NULL,
draw=BGlist.none.draw,
event=nil,
discard=NULL,
default='none',
locked=false,
cur='none',
init=false,
resize=false,
update=NULL,
draw=BGs.none.draw,
event=false,
discard=NULL,
}
function BG.lock()BG.locked=true end
function BG.unlock()BG.locked=false end
function BG.add(name,bg)
BGlist[name]=bg
BGs[name]=bg
BGlist[#BGlist+1]=name
end
function BG.getList()
return BGlist
end
function BG.remList(name)
table.remove(BGlist,TABLE.find(BGlist,name))
end
function BG.send(...)
if BG.event then
BG.event(...)
end
if BG.event then
BG.event(...)
end
end
function BG.set(background)
if background==BG.cur or not SETTING.bg then return end
BG.discard()
BG.cur=background
background=BGlist[background]
if not background then
LOG.print("No BG called"..background,"warn")
return
end
function BG.setDefault(bg)
BG.default=bg
end
function BG.set(name)
name=name or BG.default
if not BGs[name]or BG.locked then return end
if name~=BG.cur then
BG.discard()
BG.cur=name
local bg=BGs[name]
BG.init= background.init or NULL
BG.resize= background.resize or NULL
BG.update= background.update or NULL
BG.draw= background.draw or NULL
BG.event= background.event or NULL
BG.discard= background.discard or NULL
BG.init()
BG.init= bg.init or NULL
BG.resize= bg.resize or NULL
BG.update= bg.update or NULL
BG.draw= bg.draw or NULL
BG.event= bg.event or NULL
BG.discard=bg.discard or NULL
BG.init()
end
return true
end
return BG
return BG

View File

@@ -1,86 +1,182 @@
local min=math.min
local function fadeOut(src)
while true do
coroutine.yield()
local v=src:getVolume()-.025*SETTING.bgm
src:setVolume(v>0 and v or 0)
if v<=0 then
src:stop()
return true
end
end
end
local function fadeIn(src)
while true do
coroutine.yield()
local v=SETTING.bgm
v=min(v,src:getVolume()+.025*v)
src:setVolume(v)
if v>=SETTING.bgm then
return true
end
end
end
local function removeCurFadeOut(task,code,src)
return task.code==code and task.args[1]==src
end
local lastLoaded={}
local maxLoadedCount=3
local nameList={}
local SourceObjList={}
local volume=1
local BGM={
--nowPlay=[str:playing ID]
--playing=[src:playing SRC]
default=false,
onChange=NULL,
--nowPlay=[str:playing ID]
--playing=[src:playing SRC]
--lastPlayed=[str:lastPlayed ID]
}
function BGM.set(L)
BGM.list=L
BGM.len=#L
end
function BGM.loadOne(N)
N=BGM.list[N]
local file="media/BGM/"..N..".ogg"
if love.filesystem.getInfo(file)then
BGM.list[N]=love.audio.newSource(file,"stream")
BGM.list[N]:setLooping(true)
BGM.list[N]:setVolume(0)
else
LOG.print("No BGM file: "..N,5,COLOR.orange)
end
end
function BGM.loadAll()
for i=1,#BGM.list do
BGM.loadOne(i)
end
end
function BGM.play(s)
if SETTING.bgm==0 then
BGM.nowPlay=s
BGM.playing=BGM.list[s]
return
end
if s and BGM.list[s]and BGM.nowPlay~=s then
if BGM.nowPlay then TASK.new(fadeOut,BGM.playing)end
TASK.removeTask_iterate(removeCurFadeOut,fadeOut,BGM.list[s])
TASK.removeTask_code(fadeIn)
TASK.new(fadeIn,BGM.list[s])
BGM.nowPlay=s
BGM.playing=BGM.list[s]
BGM.playing:play()
end
function BGM.getList()return nameList end
function BGM.getCount()return #nameList end
local function _addFile(name,path)
if not SourceObjList[name]then
table.insert(nameList,name)
SourceObjList[name]={path=path,source=false}
end
end
function BGM.freshVolume()
if BGM.playing then
local v=SETTING.bgm
if v>0 then
BGM.playing:setVolume(v)
BGM.playing:play()
elseif BGM.nowPlay then
BGM.playing:pause()
end
end
function BGM.load(name,path)
if type(name)=='table'then
for k,v in next,name do
_addFile(k,v)
end
else
_addFile(name,path)
end
table.sort(nameList)
LOG(BGM.getCount().." BGM files added")
end
function BGM.stop()
TASK.removeTask_code(fadeIn)
if BGM.nowPlay then TASK.new(fadeOut,BGM.playing)end
BGM.nowPlay,BGM.playing=nil
local function _tryReleaseSources()
local n=#lastLoaded
while #lastLoaded>maxLoadedCount do
local name=lastLoaded[n]
if SourceObjList[name].source:isPlaying()then
n=n-1
if n<=0 then return end
else
SourceObjList[name].source=SourceObjList[name].source:release()and nil
table.remove(lastLoaded,n)
return
end
end
end
return BGM
function BGM.setDefault(bgm)
BGM.default=bgm
end
function BGM.setMaxSources(count)
maxLoadedCount=count
_tryReleaseSources()
end
function BGM.setChange(func)
BGM.onChange=func
end
function BGM.setVol(v)
assert(type(v)=='number'and v>=0 and v<=1,'Wrong volume')
volume=v
if BGM.playing then
if volume>0 then
BGM.playing:setVolume(volume)
BGM.playing:play()
elseif BGM.nowPlay then
BGM.playing:pause()
end
end
end
local function task_fadeOut(src)
while true do
coroutine.yield()
local v=src:getVolume()-.025*volume
src:setVolume(v>0 and v or 0)
if v<=0 then
src:pause()
return true
end
end
end
local function task_fadeIn(src)
while true do
coroutine.yield()
local v=volume
v=math.min(v,src:getVolume()+.025*v)
src:setVolume(v)
if v>=volume then
return true
end
end
end
local function check_curFadeOut(task,code,src)
return task.code==code and task.args[1]==src
end
local function _tryLoad(name)
if SourceObjList[name]then
if SourceObjList[name].source then
return true
elseif love.filesystem.getInfo(SourceObjList[name].path)then
SourceObjList[name].source=love.audio.newSource(SourceObjList[name].path,'stream')
SourceObjList[name].source:setVolume(0)
table.insert(lastLoaded,1,name)
_tryReleaseSources()
return true
else
LOG("No BGM: "..SourceObjList[name],5)
end
elseif name then
LOG("No BGM: "..name,5)
end
end
function BGM.play(name,args)
name=name or BGM.default
args=args or""
if not _tryLoad(name)or args:sArg('-preLoad')then return end
if volume==0 then
BGM.nowPlay=name
BGM.playing=SourceObjList[name].source
return true
end
if name and SourceObjList[name].source then
if BGM.nowPlay~=name then
if BGM.nowPlay then
if not args:sArg('-sdout')then
TASK.new(task_fadeOut,BGM.playing)
else
BGM.playing:pause()
end
end
TASK.removeTask_iterate(check_curFadeOut,task_fadeOut,SourceObjList[name].source)
TASK.removeTask_code(task_fadeIn)
BGM.nowPlay=name
BGM.playing=SourceObjList[name].source
if not args:sArg('-sdin')then
BGM.playing:setVolume(0)
TASK.new(task_fadeIn,BGM.playing)
else
BGM.playing:setVolume(volume)
BGM.playing:play()
end
SourceObjList[name].source:setLooping(not args:sArg('-noloop'))
BGM.lastPlayed=BGM.nowPlay
BGM.playing:seek(0)
BGM.playing:play()
BGM.onChange(name)
end
return true
end
end
function BGM.seek(t)
if BGM.playing then
BGM.playing:seek(t)
end
end
function BGM.isPlaying()
return BGM.playing and BGM.playing:isPlaying()
end
function BGM.continue()
if BGM.lastPlayed then
BGM.nowPlay,BGM.playing=BGM.lastPlayed,SourceObjList[BGM.lastPlayed].source
TASK.removeTask_iterate(check_curFadeOut,task_fadeOut,SourceObjList[BGM.nowPlay].source)
TASK.removeTask_code(task_fadeIn)
TASK.new(task_fadeIn,BGM.playing)
BGM.playing:play()
end
end
function BGM.stop(args)
args=args or""
TASK.removeTask_code(task_fadeIn)
if not args:sArg('-s')then
if BGM.nowPlay then
TASK.new(task_fadeOut,BGM.playing)
end
elseif BGM.playing then
BGM.playing:pause()
end
BGM.nowPlay,BGM.playing=nil
end
return BGM

View File

@@ -1,93 +1,148 @@
local abs=math.abs
local function hsv(h,s,v,a)--Color type, Color amount, Light
if s<=0 then return v,v,v,a end
h=h*6
local c=v*s
local x=abs((h-1)%2-1)*c
if h<1 then return v,x+v-c,v-c,a
elseif h<2 then return x+v-c,v,v-c,a
elseif h<3 then return v-c,v,x+v-c,a
elseif h<4 then return v-c,x+v-c,v,a
elseif h<5 then return x+v-c,v-c,v,a
else return v,v-c,x+v-c,a
end
end
local COLOR={
red= {1.0, 0.0, 0.0},
fire= {1.0, 0.4, 0.0},
orange= {1.0, 0.6, 0.0},
yellow= {1.0, 1.0, 0.0},
lame= {0.7, 1.0, 0.0},
grass= {0.5, 1.0, 0.0},
green= {0.0, 1.0, 0.0},
water= {0.0, 1.0, 0.6},
cyan= {0.0, 1.0, 1.0},
sky= {0.0, 0.7, 1.0},
sea= {0.0, 0.4, 1.0},
blue= {0.2, 0.2, 1.0},
purple= {0.4, 0.0, 1.0},
grape= {0.7, 0.0, 1.0},
magenta= {1.0, 0.0, 1.0},
pink= {1.0, 0.0, 0.5},
hsv=hsv,
lRed= {1.0, 0.5, 0.5},
lFire= {1.0, 0.7, 0.5},
lOrange= {1.0, 0.8, 0.3},
lYellow= {1.0, 1.0, 0.5},
lLame= {0.8, 1.0, 0.4},
lGrass= {0.6, 1.0, 0.4},
lGreen= {0.5, 1.0, 0.5},
lWater= {0.4, 1.0, 0.7},
lCyan= {0.5, 1.0, 1.0},
lSky= {0.5, 0.8, 1.0},
lSea= {0.4, 0.7, 1.0},
lBlue= {0.7, 0.7, 1.0},
lPurple= {0.7, 0.4, 1.0},
lGrape= {0.8, 0.4, 1.0},
lMagenta= {1.0, 0.5, 1.0},
lPink= {1.0, 0.4, 0.7},
red= {hsv(0.00, 0.89, 0.91)},
fire= {hsv(0.04, 0.93, 0.94)},
orange= {hsv(0.09, 0.99, 0.96)},
yellow= {hsv(0.15, 0.82, 0.90)},
lime= {hsv(0.20, 0.89, 0.88)},
jade= {hsv(0.25, 1.00, 0.82)},
green= {hsv(0.33, 1.00, 0.81)},
aqua= {hsv(0.47, 1.00, 0.76)},
cyan= {hsv(0.53, 1.00, 0.88)},
navy= {hsv(0.56, 1.00, 1.00)},
sea= {hsv(0.61, 1.00, 1.00)},
blue= {hsv(0.64, 1.00, 0.95)},
violet= {hsv(0.74, 1.00, 0.91)},
purple= {hsv(0.80, 1.00, 0.81)},
magenta= {hsv(0.86, 1.00, 0.78)},
wine= {hsv(0.92, 0.98, 0.91)},
dRed= {0.6, 0.0, 0.0},
dFire= {0.6, 0.3, 0.0},
dOrange= {0.6, 0.4, 0.0},
dYellow= {0.6, 0.6, 0.0},
dLame= {0.5, 0.6, 0.0},
dGrass= {0.3, 0.6, 0.0},
dGreen= {0.0, 0.6, 0.0},
dWater= {0.0, 0.6, 0.4},
dCyan= {0.0, 0.6, 0.6},
dSky= {0.0, 0.4, 0.6},
dSea= {0.0, 0.2, 0.6},
dBlue= {0.1, 0.1, 0.6},
dPurple= {0.2, 0.0, 0.6},
dGrape= {0.4, 0.0, 0.6},
dMagenta= {0.6, 0.0, 0.6},
dPink= {0.6, 0.0, 0.3},
lRed= {hsv(0.00, 0.38, 0.93)},
lFire= {hsv(0.04, 0.45, 0.91)},
lOrange= {hsv(0.10, 0.53, 0.92)},
lYellow= {hsv(0.14, 0.61, 0.95)},
lLime= {hsv(0.20, 0.66, 0.92)},
lJade= {hsv(0.26, 0.56, 0.90)},
lGreen= {hsv(0.34, 0.49, 0.89)},
lAqua= {hsv(0.47, 0.59, 0.86)},
lCyan= {hsv(0.51, 0.77, 0.88)},
lNavy= {hsv(0.54, 0.80, 0.95)},
lSea= {hsv(0.57, 0.72, 0.97)},
lBlue= {hsv(0.64, 0.44, 0.96)},
lViolet= {hsv(0.72, 0.47, 0.95)},
lPurple= {hsv(0.80, 0.62, 0.89)},
lMagenta= {hsv(0.86, 0.61, 0.89)},
lWine= {hsv(0.93, 0.57, 0.92)},
black= {0.0, 0.0, 0.0},
dGrey= {0.3, 0.3, 0.3},
grey= {0.6, 0.6, 0.6},
lGrey= {0.8, 0.8, 0.8},
white= {1.0, 1.0, 1.0},
dRed= {hsv(0.00, 0.80, 0.48)},
dFire= {hsv(0.04, 0.80, 0.34)},
dOrange= {hsv(0.07, 0.80, 0.39)},
dYellow= {hsv(0.12, 0.80, 0.37)},
dLime= {hsv(0.20, 0.80, 0.26)},
dJade= {hsv(0.29, 0.80, 0.27)},
dGreen= {hsv(0.33, 0.80, 0.26)},
dAqua= {hsv(0.46, 0.80, 0.24)},
dCyan= {hsv(0.50, 0.80, 0.30)},
dNavy= {hsv(0.58, 0.80, 0.42)},
dSea= {hsv(0.64, 0.80, 0.40)},
dBlue= {hsv(0.67, 0.80, 0.34)},
dViolet= {hsv(0.71, 0.80, 0.35)},
dPurple= {hsv(0.76, 0.80, 0.32)},
dMagenta= {hsv(0.87, 0.80, 0.28)},
dWine= {hsv(0.92, 0.80, 0.28)},
black= {hsv(0.04, 0.04, 0.14)},
dGray= {hsv(0.02, 0.05, 0.44)},
gray= {hsv(0.02, 0.05, 0.65)},
lGray= {hsv(0.02, 0.06, 0.86)},
white= {hsv(0.01, 0.02, 0.99)},
xGray= {hsv(0.00, 0.00, 0.35,.8)},
lxGray= {hsv(0.00, 0.00, 0.62,.8)},
dxGray= {hsv(0.00, 0.00, 0.16,.8)},
}
local map={
R="red", G="green", B="blue", C="cyan", Y="yellow", M="magenta",
lR="lRed", lG="lGreen",lB="lBlue", lC="lCyan", lY="lYellow", lM="lMagenta",
dR="dRed", dG="dGreen",dB="dBlue", dC="dCyan", dY="dYellow", dM="dMagenta",
W="white",
}for k,v in next,map do COLOR[k]=COLOR[v]end
for k,v in next,{
R='red', F='fire', O='orange', Y='yellow', L='lime', J='jade', G='green', A='aqua', C='cyan', N='navy', S='sea', B='blue', V='violet', P='purple', M='magenta', W='wine',
lR='lRed',lF='lFire',lO='lOrange',lY='lYellow',lL='lLime',lJ='lJade',lG='lGreen',lA='lAqua',lC='lCyan',lN='lNavy',lS='lSea',lB='lBlue',lV='lViolet',lP='lPurple',lM='lMagenta',lW='lWine',
dR='dRed',dF='dFire',dO='dOrange',dY='dYellow',dL='dLime',dJ='dJade',dG='dGreen',dA='dAqua',dC='dCyan',dN='dNavy',dS='dSea',dB='dBlue',dV='dViolet',dP='dPurple',dM='dMagenta',dW='dWine',
D='black',dH='dGray',H='gray',lH='lGray',Z='white',
X='xGray',lX='lxGray',dX='dxGray',
--Remain letter: EIKQTUX
}do
COLOR[k]=COLOR[v]
end
setmetatable(COLOR,{__index=function(_,k)
error("No color: "..tostring(k))
end})
local list_norm={"red","fire","orange","yellow","lame","grass","green","water","cyan","sky","sea","blue","purple","grape","magenta","pink"}
local len_list_norm=#list_norm
local rnd=math.random
function COLOR.random_norm()
return COLOR[list_norm[rnd(len_list_norm)]]
do--Random generators
local rnd=math.random
local list_norm={'red','fire','orange','yellow','lime','jade','green','aqua','cyan','navy','sea','blue','violet','purple','magenta','wine'}
local len_list_norm=#list_norm
function COLOR.random_norm()
return COLOR[list_norm[rnd(len_list_norm)]]
end
local list_bright={'lRed','lFire','lOrange','lYellow','lLime','lJade','lGreen','lAqua','lCyan','lNavy','lSea','lBlue','lViolet','lPurple','lMagenta','lWine'}
local len_list_bright=#list_bright
function COLOR.random_bright()
return COLOR[list_bright[rnd(len_list_bright)]]
end
local list_dark={'dRed','dFire','dOrange','dYellow','dLime','dJade','dGreen','dAqua','dCyan','dNavy','dSea','dBlue','dViolet','dPurple','dMagenta','dWine'}
local len_list_dark=#list_dark
function COLOR.random_dark()
return COLOR[list_dark[rnd(len_list_dark)]]
end
end
local list_bright={"lRed","lFire","lOrange","lYellow","lLame","lGrass","lGreen","lWater","lCyan","lSky","lSea","lBlue","lPurple","lGrape","lMagenta","lPink"}
local len_list_bright=#list_bright
function COLOR.random_bright()
return COLOR[list_bright[rnd(len_list_bright)]]
do--Rainbow generators
local sin=math.sin
function COLOR.rainbow(phase,a)
return
sin(phase)*.4+.6,
sin(phase+2.0944)*.4+.6,
sin(phase-2.0944)*.4+.6,
a
end
function COLOR.rainbow_light(phase,a)
return
sin(phase)*.2+.7,
sin(phase+2.0944)*.2+.7,
sin(phase-2.0944)*.2+.7,
a
end
function COLOR.rainbow_dark(phase,a)
return
sin(phase)*.2+.4,
sin(phase+2.0944)*.2+.4,
sin(phase-2.0944)*.2+.4,
a
end
function COLOR.rainbow_gray(phase,a)
return
sin(phase)*.16+.5,
sin(phase+2.0944)*.16+.5,
sin(phase-2.0944)*.16+.5,
a
end
end
local list_dark={"dRed","dFire","dOrange","dYellow","dLame","dGrass","dGreen","dWater","dCyan","dSky","dSea","dBlue","dPurple","dGrape","dMagenta","dPink"}
local len_list_dark=#list_dark
function COLOR.random_bright()
return COLOR[list_dark[rnd(len_list_dark)]]
end
local sin=math.sin
function COLOR.rainbow(phase)
return
sin(phase)*.4+.6,
sin(phase+2.0944)*.4+.6,
sin(phase-2.0944)*.4+.6
end
return COLOR
return COLOR

View File

@@ -1,58 +1,105 @@
local fs=love.filesystem
local FILE={}
function FILE.load(name)
name=name..".dat"
local F=fs.newFile(name)
if F:open("r")then
local s=F:read()
F:close()
if s:sub(1,6)=="return"then
s=loadstring(s)
if s then
setfenv(s,{})
return s()
else
LOG.print(name.." "..text.loadError,COLOR.red)
return{}
end
else
local res=json.decode(s)
if res then
return res
else
LOG.print(name.." "..text.loadError,COLOR.red)
return{}
end
end
end
function FILE.load(name,args)
if not args then args=''end
if fs.getInfo(name)then
local F=fs.newFile(name)
assert(F:open'r','open error')
local s=F:read()F:close()
local mode=
STRING.sArg(args,'-luaon')and'luaon'or
STRING.sArg(args,'-lua')and'lua'or
STRING.sArg(args,'-json')and'json'or
STRING.sArg(args,'-string')and'string'or
s:sub(1,6)=='return{'and'luaon'or
(s:sub(1,1)=='['and s:sub(-1)==']'or s:sub(1,1)=='{'and s:sub(-1)=='}')and'json'or
'string'
if mode=='luaon'then
local func,err_mes=loadstring(s)
if func then
setfenv(func,{})
local res=func()
return assert(res,'decode error')
else
error('decode error: '..err_mes)
end
elseif mode=='lua'then
local func,err_mes=loadstring(s)
if func then
local res=func()
return assert(res,'run error')
else
error('compile error: '..err_mes)
end
elseif mode=='json'then
local res=JSON.decode(s)
if res then
return res
end
error('decode error')
elseif mode=='string'then
return s
else
error('unknown mode')
end
else
error('no file')
end
end
function FILE.save(data,name,mode)
if not mode then mode=""end
name=name..".dat"
if mode:find("l")then
data=dumpTable(data)
if not data then
LOG.print(name.." "..text.saveError.."dump error","error")
return
end
else
data=json.encode(data)
if not data then
LOG.print(name.." "..text.saveError.."json error","error")
return
end
end
function FILE.save(data,name,args)
if not args then args=''end
if STRING.sArg(args,'-d')and fs.getInfo(name)then
error('duplicate')
end
local F=fs.newFile(name)
F:open("w")
local success,mes=F:write(data)
F:flush()F:close()
if success then
if mode:find("q")then
LOG.print(text.saveDone,COLOR.green)
end
else
LOG.print(text.saveError..(mes or"unknown error"),"error")
end
if type(data)=='table'then
if STRING.sArg(args,'-luaon')then
data=TABLE.dump(data)
if not data then
error('encode error')
end
else
data=JSON.encode(data)
if not data then
error('encode error')
end
end
else
data=tostring(data)
end
local F=fs.newFile(name)
assert(F:open('w'),'open error')
F:write(data)F:flush()F:close()
end
return FILE
function FILE.clear(path)
if fs.getRealDirectory(path)==SAVEDIR and fs.getInfo(path).type=='directory'then
for _,name in next,fs.getDirectoryItems(path)do
name=path..'/'..name
if fs.getRealDirectory(name)==SAVEDIR then
local t=fs.getInfo(name).type
if t=='file'then
fs.remove(name)
end
end
end
end
end
function FILE.clear_s(path)
if path==''or(fs.getRealDirectory(path)==SAVEDIR and fs.getInfo(path).type=='directory')then
for _,name in next,fs.getDirectoryItems(path)do
name=path..'/'..name
if fs.getRealDirectory(name)==SAVEDIR then
local t=fs.getInfo(name).type
if t=='file'then
fs.remove(name)
elseif t=='directory'then
FILE.clear_s(name)
fs.remove(name)
end
end
end
fs.remove(path)
end
end
return FILE

60
Zframework/font.lua Normal file
View File

@@ -0,0 +1,60 @@
local gc=love.graphics
local set=gc.setFont
local fontFiles,fontCache={},{}
local defaultFont,defaultFallBack
local curFont=false--Current using font object
local FONT={}
function FONT.setDefault(name)defaultFont=name end
function FONT.setFallback(name)defaultFallBack=name end
function FONT.rawget(s)
if not fontCache[s]then
fontCache[s]=gc.setNewFont(s,'light',gc.getDPIScale()*SCR.k*2)
end
return fontCache[s]
end
function FONT.rawset(s)
set(fontCache[s]or FONT.rawget(s))
end
function FONT.load(fonts)
for name,path in next,fonts do
assert(love.filesystem.getInfo(path),STRING.repD("Font file $1($2) not exist!",name,path))
fontFiles[name]=love.filesystem.newFile(path)
fontCache[name]={}
end
FONT.reset()
end
function FONT.get(size,name)
if not name then name=defaultFont end
local f=fontCache[name][size]
if not f then
f=gc.setNewFont(fontFiles[name],size,'light',gc.getDPIScale()*SCR.k*2)
if defaultFallBack and name~=defaultFallBack then
f:setFallbacks(FONT.get(size,defaultFallBack))
end
fontCache[name][size]=f
end
return f
end
function FONT.set(size,name)
if not name then name=defaultFont end
local f=fontCache[name][size]
if f~=curFont then
curFont=f or FONT.get(size,name)
set(curFont)
end
end
function FONT.reset()
for name,cache in next,fontCache do
if type(cache)=='table'then
for size in next,cache do
cache[size]=FONT.get(size,name)
end
else
fontCache[name]=FONT.rawget(name)
end
end
end
return FONT

164
Zframework/gcExtend.lua Normal file
View File

@@ -0,0 +1,164 @@
local gc=love.graphics
local setColor,printf,draw=gc.setColor,gc.printf,gc.draw
local GC={}
function GC.mStr(obj,x,y)printf(obj,x-626,y,1252,'center')end--Printf a string with 'center'
function GC.simpX(obj,x,y)draw(obj,x-obj:getWidth()*.5,y)end--Simply draw an obj with x=obj:getWidth()/2
function GC.simpY(obj,x,y)draw(obj,x,y-obj:getHeight()*.5)end--Simply draw an obj with y=obj:getWidth()/2
function GC.X(obj,x,y,a,k)draw(obj,x,y,a,k,nil,obj:getWidth()*.5,0)end--Draw an obj with x=obj:getWidth()/2
function GC.Y(obj,x,y,a,k)draw(obj,x,y,a,k,nil,0,obj:getHeight()*.5)end--Draw an obj with y=obj:getWidth()/2
function GC.draw(obj,x,y,a,k)draw(obj,x,y,a,k,nil,obj:getWidth()*.5,obj:getHeight()*.5)end--Draw an obj with both middle X & Y
function GC.outDraw(obj,div,x,y,a,k)
local w,h=obj:getWidth()*.5,obj:getHeight()*.5
draw(obj,x-div,y-div,a,k,nil,w,h)
draw(obj,x-div,y+div,a,k,nil,w,h)
draw(obj,x+div,y-div,a,k,nil,w,h)
draw(obj,x+div,y+div,a,k,nil,w,h)
end
function GC.shadedPrint(str,x,y,mode,d,clr1,clr2)
local w=1280
if mode=='center'then
x=x-w*.5
elseif mode=='right'then
x=x-w
end
if not d then d=1 end
setColor(clr1 or COLOR.D)
printf(str,x-d,y-d,w,mode)
printf(str,x-d,y+d,w,mode)
printf(str,x+d,y-d,w,mode)
printf(str,x+d,y+d,w,mode)
setColor(clr2 or COLOR.Z)
printf(str,x,y,w,mode)
end
function GC.regularPolygon(mode,x,y,R,segments,r,phase)
local X,Y={},{}
local ang=phase or 0
local angStep=6.283185307179586/segments
for i=1,segments do
X[i]=x+R*math.cos(ang)
Y[i]=y+R*math.sin(ang)
ang=ang+angStep
end
X[segments+1]=x+R*math.cos(ang)
Y[segments+1]=y+R*math.sin(ang)
local halfAng=6.283185307179586/segments/2
local erasedLen=r*math.tan(halfAng)
if mode=='line'then
erasedLen=erasedLen+1--Fix 1px cover
for i=1,segments do
--Line
local x1,y1,x2,y2=X[i],Y[i],X[i+1],Y[i+1]
local dir=math.atan2(y2-y1,x2-x1)
gc.line(x1+erasedLen*math.cos(dir),y1+erasedLen*math.sin(dir),x2-erasedLen*math.cos(dir),y2-erasedLen*math.sin(dir))
--Arc
ang=ang+angStep
local R2=R-r/math.cos(halfAng)
local arcCX,arcCY=x+R2*math.cos(ang),y+R2*math.sin(ang)
gc.arc('line','open',arcCX,arcCY,r,ang-halfAng,ang+halfAng)
end
elseif mode=='fill'then
local L={}
for i=1,segments do
--Line
local x1,y1,x2,y2=X[i],Y[i],X[i+1],Y[i+1]
local dir=math.atan2(y2-y1,x2-x1)
table.insert(L,x1+erasedLen*math.cos(dir))
table.insert(L,y1+erasedLen*math.sin(dir))
table.insert(L,x2-erasedLen*math.cos(dir))
table.insert(L,y2-erasedLen*math.sin(dir))
--Arc
ang=ang+angStep
local R2=R-r/math.cos(halfAng)
local arcCX,arcCY=x+R2*math.cos(ang),y+R2*math.sin(ang)
gc.arc('fill','open',arcCX,arcCY,r,ang-halfAng,ang+halfAng)
end
gc.polygon('fill',L)
else
error("Draw mode should be 'line' or 'fill'")
end
end
do--function GC.DO(L)
local cmds={
origin="origin",
move="translate",
scale="scale",
rotate="rotate",
shear="shear",
clear="clear",
setCL="setColor",
setCM="setColorMask",
setLW="setLineWidth",
setLS="setLineStyle",
setLJ="setLineJoin",
print="print",
rawFT=function(...)FONT.rawset(...)end,
setFT=function(...)FONT.set(...)end,
mText=GC.mStr,
mDraw=GC.draw,
mDrawX=GC.X,
mDrawY=GC.Y,
mOutDraw=GC.outDraw,
draw="draw",
line="line",
fRect=function(...)gc.rectangle('fill',...)end,
dRect=function(...)gc.rectangle('line',...)end,
fCirc=function(...)gc.circle('fill',...)end,
dCirc=function(...)gc.circle('line',...)end,
fElps=function(...)gc.ellipse('fill',...)end,
dElps=function(...)gc.ellipse('line',...)end,
fPoly=function(...)gc.polygon('fill',...)end,
dPoly=function(...)gc.polygon('line',...)end,
dPie=function(...)gc.arc('line',...)end,
dArc=function(...)gc.arc('line','open',...)end,
dBow=function(...)gc.arc('line','closed',...)end,
fPie=function(...)gc.arc('fill',...)end,
fArc=function(...)gc.arc('fill','open',...)end,
fBow=function(...)gc.arc('fill','closed',...)end,
fRPol=function(...)GC.regularPolygon('fill',...)end,
dRPol=function(...)GC.regularPolygon('line',...)end,
}
local sizeLimit=gc.getSystemLimits().texturesize
function GC.DO(L)
gc.push()
::REPEAT_tryAgain::
local success,canvas=pcall(gc.newCanvas,math.min(L[1],sizeLimit),math.min(L[2],sizeLimit))
if not success then
sizeLimit=math.floor(sizeLimit*.8)
goto REPEAT_tryAgain
end
gc.setCanvas(canvas)
gc.origin()
gc.clear(1,1,1,0)
gc.setColor(1,1,1)
gc.setLineWidth(1)
for i=3,#L do
local cmd=L[i][1]
if type(cmd)=='boolean'and cmd then
table.remove(L[i],1)
cmd=L[i][1]
end
if type(cmd)=='string'then
local func=cmds[cmd]
if type(func)=='string'then
func=gc[func]
end
if func then
func(unpack(L[i],2))
else
error("No gc command: "..cmd)
end
end
end
gc.setCanvas()
gc.pop()
return canvas
end
end
return GC

View File

@@ -1,42 +1,25 @@
local IMG={
batteryImage="/mess/power.png",
title="mess/title.png",
title_color="mess/title_colored.png",
dialCircle="mess/dialCircle.png",
dialNeedle="mess/dialNeedle.png",
lifeIcon="mess/life.png",
badgeIcon="mess/badge.png",
spinCenter="mess/spinCenter.png",
ctrlSpeedLimit="mess/ctrlSpeedLimit.png",
speedLimit="mess/speedLimit.png",
pay1="mess/pay1.png",
pay2="mess/pay2.png",
local IMG={}
function IMG.init(list)
IMG.init=nil
miyaCH="miya/ch.png",
miyaF1="miya/f1.png",
miyaF2="miya/f2.png",
miyaF3="miya/f3.png",
miyaF4="miya/f4.png",
setmetatable(IMG,{__index=function(self,name)
if type(list[name])=='table'then
self[name]={}
for i=1,#list[name]do
self[name][i]=love.graphics.newImage(list[name][i])
end
elseif type(list[name])=='string'then
self[name]=love.graphics.newImage(list[name])
else
LOG("No IMG: "..name)
self[name]=PAPER
end
return self[name]
end})
electric="mess/electric.png",
hbm="mess/hbm.png",
}
local list={}
local count=0
for k,_ in next,IMG do
count=count+1
list[count]=k
function IMG.loadAll()
for k in next,list do local _=IMG[k]end
IMG.loadAll=nil
end
end
function IMG.getCount()
return count
end
function IMG.loadOne(_)
local N=list[_]
IMG[N]=love.graphics.newImage("media/image/"..IMG[N])
end
function IMG.loadAll()
for i=1,count do
IMG.loadOne(i)
end
end
return IMG
return IMG

File diff suppressed because it is too large Load Diff

340
Zframework/json.lua Normal file
View File

@@ -0,0 +1,340 @@
-- json.lua
-- Copyright (c) 2020 rxi
-- Permission is hereby granted, free of charge, to any person obtaining a copy of
-- this software and associated documentation files (the "Software"), to deal in
-- the Software without restriction, including without limitation the rights to
-- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-- of the Software, and to permit persons to whom the Software is furnished to do
-- so, subject to the following conditions:
-- The above copyright notice and this permission notice shall be included in all
-- copies or substantial portions of the Software.
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
-- Editted by MrZ
local ins,char=table.insert,string.char
local json = {}
-------------------------------------------------------------------------------
-- Encode
-------------------------------------------------------------------------------
local _encode
local escape_char_map = {
["\\"] = "\\",
["\""] = "\"",
["\b"] = "b",
["\f"] = "f",
["\n"] = "n",
["\r"] = "r",
["\t"] = "t"
}
local escape_char_map_inv = {["/"] = "/"}
for k, v in pairs(escape_char_map) do escape_char_map_inv[v] = k end
local function escape_char(c)
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
end
local function encode_nil() return "null" end
local function encode_table(val, stack)
local res = {}
stack = stack or {}
-- Circular reference?
if stack[val] then error("circular reference") end
stack[val] = true
if rawget(val, 1) ~= nil or next(val) == nil then
-- Treat as array -- check keys are valid and it is not sparse
local n = 0
for k in pairs(val) do
if type(k) ~= 'number' then
error("invalid table: mixed or invalid key types")
end
n = n + 1
end
if n ~= #val then error("invalid table: sparse array") end
-- Encode
for _, v in ipairs(val) do ins(res, _encode(v, stack)) end
stack[val] = nil
return "[" .. table.concat(res, ",") .. "]"
else
-- Treat as an object
for k, v in pairs(val) do
if type(k) ~= 'string' then
error("invalid table: mixed or invalid key types")
end
ins(res, _encode(k, stack) .. ":" .. _encode(v, stack))
end
stack[val] = nil
return "{" .. table.concat(res, ",") .. "}"
end
end
local function encode_string(val)
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
end
local function encode_number(val)
-- Check for NaN, -inf and inf
if val ~= val or val <= -math.huge or val >= math.huge then
error("unexpected number value '" .. tostring(val) .. "'")
end
return string.format("%.14g", val)
end
local type_func_map = {
['nil'] = encode_nil,
['table'] = encode_table,
['string'] = encode_string,
['number'] = encode_number,
['boolean'] = tostring
}
_encode = function(val, stack)
local t = type(val)
local f = type_func_map[t]
if f then return f(val, stack) end
error("unexpected type '" .. t .. "'")
end
json.encode=_encode
-------------------------------------------------------------------------------
-- Decode
-------------------------------------------------------------------------------
local parse
local function create_set(...)
local res = {}
for i = 1, select("#", ...) do res[select(i, ...)] = true end
return res
end
local space_chars = create_set(" ", "\t", "\r", "\n")
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
local literals = create_set("true", "false", "null")
local literal_map = {["true"] = true, ["false"] = false, ["null"] = nil}
local function next_char(str, idx, set, negate)
for i = idx, #str do if set[str:sub(i, i)] ~= negate then return i end end
return #str + 1
end
local function decode_error(str, idx, msg)
local line_count = 1
local col_count = 1
for i = 1, idx - 1 do
col_count = col_count + 1
if str:sub(i, i) == "\n" then
line_count = line_count + 1
col_count = 1
end
end
error(string.format("%s at line %d col %d", msg, line_count, col_count))
end
local function codepoint_to_utf8(n)
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
local f = bit.rshift
if n <= 0x7f then
return char(n)
elseif n <= 0x7ff then
return char(f(n, 6) + 192, n % 64 + 128)
elseif n <= 0xffff then
return char(f(n, 12) + 224, f(n % 4096, 6) + 128, n % 64 + 128)
elseif n <= 0x10ffff then
return char(f(n, 18) + 240, f(n % 262144, 12) + 128, f(n % 4096, 6) + 128, n % 64 + 128)
end
error(string.format("invalid unicode codepoint '%x'", n))
end
local function parse_unicode_escape(s)
local n1 = tonumber(s:sub(1, 4), 16)
local n2 = tonumber(s:sub(7, 10), 16)
-- Surrogate pair?
if n2 then
return
codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
else
return codepoint_to_utf8(n1)
end
end
local function parse_string(str, i)
local res = ""
local j = i + 1
local k = j
while j <= #str do
local x = str:byte(j)
if x < 32 then
decode_error(str, j, "control character in string")
elseif x == 92 then -- `\`: Escape
res = res .. str:sub(k, j - 1)
j = j + 1
local c = str:sub(j, j)
if c == "u" then
local hex = str:match("^[dD][89aAbB]%x%x\\u%x%x%x%x", j + 1) or
str:match("^%x%x%x%x", j + 1) or
decode_error(str, j - 1,
"invalid unicode escape in string")
res = res .. parse_unicode_escape(hex)
j = j + #hex
else
if not escape_chars[c] then
decode_error(str, j - 1,
"invalid escape char '" .. c .. "' in string")
end
res = res .. escape_char_map_inv[c]
end
k = j + 1
elseif x == 34 then -- `"`: End of string
res = res .. str:sub(k, j - 1)
return res, j + 1
end
j = j + 1
end
decode_error(str, i, "expected closing quote for string")
end
local function parse_number(str, i)
local x = next_char(str, i, delim_chars)
local s = str:sub(i, x - 1)
local n = tonumber(s)
if not n then decode_error(str, i, "invalid number '" .. s .. "'") end
return n, x
end
local function parse_literal(str, i)
local x = next_char(str, i, delim_chars)
local word = str:sub(i, x - 1)
if not literals[word] then
decode_error(str, i, "invalid literal '" .. word .. "'")
end
return literal_map[word], x
end
local function parse_array(str, i)
local res = {}
local n = 1
i = i + 1
while 1 do
local x
i = next_char(str, i, space_chars, true)
-- Empty / end of array?
if str:sub(i, i) == "]" then
i = i + 1
break
end
-- Read token
x, i = parse(str, i)
res[n] = x
n = n + 1
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "]" then break end
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
end
return res, i
end
local function parse_object(str, i)
local res = {}
i = i + 1
while 1 do
local key, val
i = next_char(str, i, space_chars, true)
-- Empty / end of object?
if str:sub(i, i) == "}" then
i = i + 1
break
end
-- Read key
if str:sub(i, i) ~= '"' then
decode_error(str, i, "expected string for key")
end
key, i = parse(str, i)
-- Read ':' delimiter
i = next_char(str, i, space_chars, true)
if str:sub(i, i) ~= ":" then
decode_error(str, i, "expected ':' after key")
end
i = next_char(str, i + 1, space_chars, true)
-- Read value
val, i = parse(str, i)
-- Set
res[key] = val
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "}" then break end
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
end
return res, i
end
local char_func_map = {
['"'] = parse_string,
["0"] = parse_number,
["1"] = parse_number,
["2"] = parse_number,
["3"] = parse_number,
["4"] = parse_number,
["5"] = parse_number,
["6"] = parse_number,
["7"] = parse_number,
["8"] = parse_number,
["9"] = parse_number,
["-"] = parse_number,
["t"] = parse_literal,
["f"] = parse_literal,
["n"] = parse_literal,
["["] = parse_array,
["{"] = parse_object
}
function parse(str, idx)
local chr = str:sub(idx, idx)
local f = char_func_map[chr]
if f then return f(str, idx) end
decode_error(str, idx, "unexpected character '" .. chr .. "'")
end
function json.decode(str)
if type(str) ~= 'string' then
error("expected argument of type string, got " .. type(str))
end
local res, idx = parse(str, next_char(str, 1, space_chars, true))
idx = next_char(str, idx, space_chars, true)
if idx <= #str then decode_error(str, idx, "trailing garbage") end
return res
end
return json

View File

@@ -1,105 +1,57 @@
local langList={
require"parts/language/lang_zh",
require"parts/language/lang_zh2",
require"parts/language/lang_en",
require"parts/language/lang_fr",
require"parts/language/lang_sp",
require"parts/language/lang_symbol",
require"parts/language/lang_yygq",
--Add new language file to LANG folder. Attention, new language won't show in-game when you add language
}
local publicText={
block={
"Z","S","J","L","T","O","I",
"Z5","S5","Q","P","F","E",
"T5","U","V","W","X",
"J5","L5","R","Y","N","H","I5"
},
}
local publicWidgetText={
calculator={
_1="1",_2="2",_3="3",
_4="4",_5="5",_6="6",
_7="7",_8="8",_9="9",
_0="0",["."]=".",e="e",
["+"]="+",["-"]="-",["*"]="*",["/"]="/",
["<"]="<",["="]="=",
play="-->",
},
staff={},
history={
prev="",
next="",
},
lang={
zh="中文",
zh2="全中文",
en="English",
fr="Français",
sp="Español",
symbol="?????",
yygq="就这?",
},
custom_field={
b0="",b1="",b2="",b3="",b4="",b5="",b6="",b7="",
b8="",b9="",b10="",b11="",b12="",b13="",b14="",b15="",b16="",
b17="[ ]",b18="N",b19="B",b20="_",b21="_",b22="_",b23="_",b24="_",
},
mg_cubefield={},
}
local function langFallback(T0,T)
for k,v in next,T0 do
if type(v)=="table"and not v.refuseCopy then--refuseCopy: just copy pointer, not contents
if not T[k]then T[k]={}end
if type(T[k])=="table"then langFallback(v,T[k])end
elseif not T[k]then
T[k]=v
end
end
end
local tipMeta={__call=function(L)return L[math.random(#L)]end}
for i=1,#langList do
local L=langList[i]
--Set public text
for key,list in next,publicText do
L[key]=list
end
--Set public widget text
for key,list in next,publicWidgetText do
local WT=L.WidgetText
if not WT[key]then WT[key]={}end
for k,v in next,list do
WT[key][k]=v
end
end
--Fallback to other language, default zh
if i>1 then
langFallback(langList[L.fallback or 1],L)
end
--Metatable:__call for table:getTip
if type(L.getTip)=="table"then
setmetatable(L.getTip,tipMeta)
end
--set global name for all back button
for _,v in next,L.WidgetText do
v.back=L.back
end
end
local LANG={}
function LANG.getLen()
return #langList
--ONLY FIRST CALL MAKE SENSE
--Create LANG.get() and LANG.addScene()
function LANG.init(defaultLang,langList,publicText,pretreatFunc)
local function _langFallback(T0,T)
for k,v in next,T0 do
if type(v)=='table'and not v.refuseCopy then--refuseCopy: just copy pointer, not contents
if not T[k]then T[k]={}end
if type(T[k])=='table'then
_langFallback(v,T[k])
end
elseif not T[k]then
T[k]=v
end
end
end
--Set public text
if publicText then
for _,L in next,langList do
for key,list in next,publicText do L[key]=list end
end
end
--Fallback to default language
for name,L in next,langList do
if name~=defaultLang then
_langFallback(langList[L.fallback or defaultLang],L)
end
end
--Custom pretreatment for each language
if pretreatFunc then
for _,L in next,langList do
pretreatFunc(L)
end
end
function LANG.get(l)
if not langList[l]then
LOG("Wrong language: "..tostring(l))
l=defaultLang
end
return langList[l]
end
function LANG.addScene(name)
for _,L in next,langList do
if L.WidgetText and not L.WidgetText[name]then
L.WidgetText[name]={}
end
end
end
function LANG.init()end
end
function LANG.set(l)
text=langList[l]
WIDGET.setLang(text.WidgetText)
for _,s in next,drawableTextLoad do
drawableText[s]:set(text[s])
end
end
return LANG
return LANG

View File

@@ -1,89 +1,86 @@
--LIGHT MODULE (Optimized by MrZ, Original on github/love2d community/simple-love-lights)
--LIGHT MODULE (Optimized by MrZ, Original on github/LÖVE community/simple-love-lights)
--Heavily based on mattdesl's libGDX implementation:
--https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows
local gc=love.graphics
local clear,translate=gc.clear,gc.translate
local setCanvas,setShader=gc.setCanvas,gc.setShader
local render=gc.draw
local clear,gc_translate=gc.clear,gc.translate
local gc_setCanvas,gc_setShader=gc.setCanvas,gc.setShader
local gc_setColor,gc_draw=gc.setColor,gc.draw
local shadowMapShader=gc.newShader("Zframework/light/shadowMap.glsl")--Shader for caculating the 1D shadow map.
local lightRenderShader=gc.newShader("Zframework/light/lightRender.glsl")--Shader for rendering blurred lights and shadows.
local shadowMapShader=gc.newShader('Zframework/light/shadowMap.glsl')--Shader for caculating the 1D shadow map.
local lightRenderShader=gc.newShader('Zframework/light/lightRender.glsl')--Shader for rendering blurred lights and shadows.
local Lights={}--Lightsource objects
local function move(L,x,y)
L.x,L.y=x,y
L.x,L.y=x,y
end
local function setPow(L,pow)
L.size=pow
L.size=pow
end
local function destroy(L)
L.blackCanvas:release()
L.shadowCanvas:release()
L.renderCanvas:release()
end
local function draw(L)
--Initialization
local r,g,b,a=gc.getColor()
setCanvas(L.blackCanvas)clear()
setCanvas(L.shadowCanvas)clear()
setCanvas(L.renderCanvas)clear()
lightRenderShader:send("xresolution",L.size)
shadowMapShader:send("yresolution",L.size)
local function drawLight(L)
local s=L.size
--Get up-left of light
local X=L.x-L.size*.5
local Y=L.y-L.size*.5
--Initialization
gc_setCanvas(L.blackCanvas)clear()
gc_setCanvas(L.shadowCanvas)clear()
gc_setCanvas(L.renderCanvas)clear()
lightRenderShader:send('xresolution',s)
shadowMapShader:send('yresolution',s)
--Render solid
translate(-X,-Y)
L.blackCanvas:renderTo(L.blackFn)
translate(X,Y)
--Get up-left of light
local X=L.x-s*.5
local Y=L.y-s*.5
--Render shade canvas by solid
setShader(shadowMapShader)
setCanvas(L.shadowCanvas)
render(L.blackCanvas)
--Render solid
gc_translate(-X,-Y)
L.blackCanvas:renderTo(L.blackFn)
gc_translate(X,Y)
--Render light canvas by shade
setShader(lightRenderShader)
setCanvas(L.renderCanvas)
render(L.shadowCanvas,0,0,0,1,L.size)
--Render shade canvas by solid
gc_setShader(shadowMapShader)
gc_setCanvas(L.shadowCanvas)
gc_draw(L.blackCanvas)
--Ready to final render
setShader()setCanvas()gc.setBlendMode("add")
--Render light canvas by shade
gc_setShader(lightRenderShader)
gc_setCanvas(L.renderCanvas)
gc_draw(L.shadowCanvas,0,0,0,1,s)
--Render to screes
gc.setColor(r,g,b,a)
render(L.renderCanvas,X,Y+L.size,0,1,-1)
--Ready to final render
gc_setShader()gc_setCanvas()gc.setBlendMode('add')
--Reset
gc.setBlendMode("alpha")
--Render to screen
gc_draw(L.renderCanvas,X,Y+s,0,1,-1)
--Reset
gc.setBlendMode('alpha')
end
local LIGHT={}
function LIGHT.draw()
for i=1,#Lights do
draw(Lights[i])
end
gc_setColor(1,1,1)
for i=1,#Lights do
drawLight(Lights[i])
end
end
function LIGHT.clear()
for i=#Lights,1,-1 do
Lights[i]:destroy()
Lights[i]=nil
end
for i=1,#Lights do
Lights[i].blackCanvas:release()
Lights[i].shadowCanvas:release()
Lights[i].renderCanvas:release()
Lights[i]=nil
end
end
function LIGHT.add(x,y,radius,solidFunc)
local id=#Lights+1
Lights[id]={
id=id,
x=x,y=y,size=radius,
blackCanvas=gc.newCanvas(radius,radius),--Solid canvas
shadowCanvas=gc.newCanvas(radius,1),--1D vis-depth canvas
renderCanvas=gc.newCanvas(radius,radius),--Light canvas
blackFn=solidFunc,--Solid draw funcion
local id=#Lights+1
Lights[id]={
id=id,
x=x,y=y,size=radius,
blackCanvas=gc.newCanvas(radius,radius),--Solid canvas
shadowCanvas=gc.newCanvas(radius,1),--1D vis-depth canvas
renderCanvas=gc.newCanvas(radius,radius),--Light canvas
blackFn=solidFunc,--Solid draw function
move=move,
setPow=setPow,
destroy=destroy,
}
move=move,
setPow=setPow,
}
end
return LIGHT
return LIGHT

View File

@@ -2,28 +2,28 @@
extern float xresolution;
// Sample from 1D vis-depth map
float samp(vec2 coord,float r,Image u_texture){
return step(r,Texel(u_texture,coord).r);
return step(r,Texel(u_texture,coord).r);
}
vec4 effect(vec4 color,Image texture,vec2 texture_coords,vec2 screen_coords){
// Cartesian to polar, y of 1D sample is always 0
vec2 norm=texture_coords.st*2.-1.;
vec2 tc=vec2((atan(norm.y,norm.x)+PI)/(2.*PI),0.);
float r=length(norm);
vec4 effect(vec4 color,Image tex,vec2 tex_coords,vec2 screen_coords){
// Cartesian to polar, y of 1D sample is always 0
vec2 norm=tex_coords.st*2.-1.;
vec2 tc=vec2((atan(norm.y,norm.x)+PI)/(2.*PI),0.);
float r=length(norm);
// Enlarge blur parameter by distance, light scattering simulation
float blur=(1./xresolution)*smoothstep(0.3,1.,r);
// Enlarge blur parameter by distance, light scattering simulation
float blur=(1./xresolution)*smoothstep(0.3,1.,r);
// Simple Gaussian blur
float sum=// Brightness(0~1)
samp(vec2(tc.x-3.*blur,tc.y),r,texture)*0.1
+samp(vec2(tc.x-2.*blur,tc.y),r,texture)*0.13
+samp(vec2(tc.x-1.*blur,tc.y),r,texture)*0.17
// Simple Gaussian blur
float sum=// Brightness(0~1)
samp(vec2(tc.x-3.*blur,tc.y),r,tex)*0.1
+samp(vec2(tc.x-2.*blur,tc.y),r,tex)*0.13
+samp(vec2(tc.x-1.*blur,tc.y),r,tex)*0.17
+samp(tc,r,texture)*0.2// The center tex coord, which gives us hard shadows.
+samp(vec2(tc.x+1.*blur,tc.y),r,texture)*0.17
+samp(vec2(tc.x+2.*blur,tc.y),r,texture)*0.13
+samp(vec2(tc.x+3.*blur,tc.y),r,texture)*0.1;
+samp(tc,r,tex)*0.2// The center tex coord, which gives us hard shadows.
+samp(vec2(tc.x+1.*blur,tc.y),r,tex)*0.17
+samp(vec2(tc.x+2.*blur,tc.y),r,tex)*0.13
+samp(vec2(tc.x+3.*blur,tc.y),r,tex)*0.1;
// Multiply the distance to get a soft fading
return vec4(vec3(1.),sum*smoothstep(1.,0.,r));
}
// Multiply the distance to get a soft fading
return vec4(vec3(1.),sum*smoothstep(1.,0.,r));
}

View File

@@ -1,20 +1,20 @@
#define PI 3.14
extern float yresolution;
vec4 effect(vec4 color,Image texture,vec2 texture_coords,vec2 screen_coords){
// Iterate through the occluder map's y-axis.
for(float y=0.;y<yresolution;y++){
// Cartesian to polar
// y/yresolution=distance to light source(0~1)
vec2 norm=vec2(texture_coords.s,y/yresolution)*2.-1.;
float theta=PI*1.5+norm.x*PI;
float r=(1.+norm.y)*0.5;
vec4 effect(vec4 color,Image tex,vec2 tex_coords,vec2 screen_coords){
// Iterate through the occluder map's y-axis.
for(float y=0.;y<yresolution;y++){
// Cartesian to polar
// y/yresolution=distance to light source(0~1)
vec2 norm=vec2(tex_coords.s,y/yresolution)*2.-1.;
float theta=PI*1.5+norm.x*PI;
float r=(1.+norm.y)*0.5;
//sample from solid
if(
Texel(texture,(
vec2(-r*sin(theta),-r*cos(theta))*0.5+0.5// Coord of solid sampling
)).a>0.1
)return vec4(vec3(y/yresolution),1.);// Collision check, alpha>0.1 means transparent
}
return vec4(1.);// Return max distance 1
}
//sample from solid
if(
Texel(tex,(
vec2(-r*sin(theta),-r*cos(theta))*0.5+0.5// Coord of solid sampling
)).a>0.1
)return vec4(vec3(y/yresolution),1.);// Collision check, alpha>0.1 means transparent
}
return vec4(1.);// Return max distance 1
}

View File

@@ -1,72 +1,20 @@
local gc=love.graphics
local int,min=math.floor,math.min
local ins,rem=table.insert,table.remove
local ins=table.insert
local debugMesList={}
local debugMesHistory={
"Version: "..VERSION_NAME,
os.date("Launched at %Y/%m/%d %H:%M"),
}
local LOG={}
function LOG.update()
if debugMesList[1]then
for i=#debugMesList,1,-1 do
local M=debugMesList[i]
if M.blink>0 then
M.blink=M.blink-1
else
M.time=M.time-1
if M.time==0 then
rem(debugMesList,i)
end
end
end
end
local logs={os.date("Techmino logs %Y/%m/%d %A")}
local function log(message)
ins(logs,os.date("[%H:%M:%S] ")..message)
end
function LOG.draw()
if debugMesList[1]then
gc.push("transform")
local k=SCR.w/SCR.w0
setFont(int(4*k)*5)
for i=1,#debugMesList do
local M=debugMesList[i]
local t=M.time
gc.setColor(M.r,M.g,M.b,M.blink>0 and int(M.blink/3)%2 or min(t/26,1))
gc.print(M.text,10+(20-min(t,20))^1.5/4,25*i*k)
end
gc.pop()
end
local LOG=setmetatable({logs=logs},{
__call=function(_,message)
print(message)
log(message)
end
})
function LOG.read()
return table.concat(logs,"\n")
end
function LOG.print(text,T,C)--text,type/time,color
local time
local his
if T=="warn"then
C=C or COLOR.yellow
his=true
time=180
elseif T=="error"then
C=C or COLOR.red
his=true
time=210
elseif T=="message"then
C=C or COLOR.sky
his=true
elseif type(T)=="number"then
C=C or COLOR.white
time=T
elseif type(T)=="table"then
C,T=T
elseif not C then
C=COLOR.white
end
if his then
ins(debugMesHistory,SCN.cur..": "..tostring(text))
end
ins(debugMesList,{text=text,r=C[1],g=C[2],b=C[3],blink=30,time=time or 120})
end
function LOG.copy()
local str=table.concat(debugMesHistory,"\n")
love.system.setClipboardText(str)
LOG.print("Log copied",COLOR.blue)
end
return LOG
return LOG

37
Zframework/mathExtend.lua Normal file
View File

@@ -0,0 +1,37 @@
local MATH={}for k,v in next,math do MATH[k]=v end
local rnd=math.random
MATH.tau=2*math.pi
function MATH.sign(a)
return a>0 and 1 or a<0 and -1 or 0
end
function MATH.roll(chance)
return rnd()<(chance or .5)
end
function MATH.coin(a,b)
if rnd()<.5 then
return a
else
return b
end
end
function MATH.interval(v,low,high)
if v<=low then
return low
elseif v>=high then
return high
else
return v
end
end
function MATH.expApproach(a,b,k)
return b+(a-b)*2.718281828459045^-k
end
return MATH

148
Zframework/message.lua Normal file
View File

@@ -0,0 +1,148 @@
local gc=love.graphics
local gc_push,gc_pop=gc.push,gc.pop
local gc_translate,gc_setColor,gc_draw=gc.translate,gc.setColor,gc.draw
local ins,rem=table.insert,table.remove
local max=math.max
local mesList={}
local mesIcon={
check=GC.DO{40,40,
{'setLW',10},
{'setCL',0,0,0},
{'line',4,19,15,30,36,9},
{'setLW',6},
{'setCL',.7,1,.6},
{'line',5,20,15,30,35,10},
},
info=GC.DO{40,40,
{'setCL',.2,.25,.85},
{'fCirc',20,20,15},
{'setCL',1,1,1},
{'setLW',2},
{'dCirc',20,20,15},
{'fRect',18,11,4,4},
{'fRect',18,17,4,12},
},
broadcast=GC.DO{40,40,
{'setCL',1,1,1},
{'fRect',2,4,36,26,3},
{'fPoly',2,27,2,37,14,25},
{'setCL',.5,.5,.5},
{'fRect',6,11,4,4,1},{'fRect',14,11,19,4,1},
{'fRect',6,19,4,4,1},{'fRect',14,19,19,4,1},
},
warn=GC.DO{40,40,
{'setCL',.95,.83,.4},
{'fPoly',20.5,1,0,38,40,38},
{'setCL',0,0,0},
{'dPoly',20.5,1,0,38,40,38},
{'fRect',17,10,7,18,2},
{'fRect',17,29,7,7,2},
{'setCL',1,1,1},
{'fRect',18,11,5,16,2},
{'fRect',18,30,5,5,2},
},
error=GC.DO{40,40,
{'setCL',.95,.3,.3},
{'fCirc',20,20,19},
{'setCL',0,0,0},
{'dCirc',20,20,19},
{'setLW',6},
{'line',10.2,10.2,29.8,29.8},
{'line',10.2,29.8,29.8,10.2},
{'setLW',4},
{'setCL',1,1,1},
{'line',11,11,29,29},
{'line',11,29,29,11},
},
music=GC.DO{40,40,
{'setLW',2},
{'dRect',1,3,38,34,3},
{'setLW',4},
{'line',21,26,21,10,28,10},
{'fElps',17,26,6,5},
},
}
local MES={}
local backColors={
check={.3,.6,.3,.7},
broadcast={.3,.3,.6,.8},
warn={.4,.4,.2,.9},
error={.4,.2,.2,.9},
music={.2,.4,.4,.9},
}
function MES.new(icon,str,time)
local backColor={.5,.5,.5,.7}
if type(icon)=='string'then
backColor=backColors[icon]or backColor
icon=mesIcon[icon]
end
local t=gc.newText(FONT.get(30),str)
local w=math.max(t:getWidth()+(icon and 45 or 5),200)+15
local h=math.max(t:getHeight(),46)+2
local L={w,h,
{'clear',backColor},
{'setCL',.7,.7,.7},
{'setLW',2},
{'dRect',1,1,w-2,h-2},
{'setCL',1,1,1},
}
if icon then
ins(L,{'draw',icon,4,4,nil,40/icon:getWidth(),40/icon:getHeight()})
end
ins(L,{'mDrawY',t,icon and 50 or 10,h/2})
ins(mesList,{
startTime=.5,
endTime=.5,
time=time or 3,
canvas=GC.DO(L),
width=w,height=h,
scale=h>400 and 1/math.min(h/400,2.6)or 1
})
end
function MES.update(dt)
for i=#mesList,1,-1 do
local m=mesList[i]
if m.startTime>0 then
m.startTime=max(m.startTime-dt,0)
elseif m.time>0 then
m.time=max(m.time-dt,0)
elseif m.endTime>0 then
m.endTime=m.endTime-dt
else
rem(mesList,i)
end
end
end
function MES.draw()
gc_push('transform')
if #mesList>0 then
gc_translate(SCR.safeX,30)
for i=1,#mesList do
local m=mesList[i]
gc_setColor(1,1,1,2*(m.endTime-m.startTime))
gc_draw(m.canvas,40-80*(m.endTime+m.startTime),0,nil,m.scale)
gc_translate(0,m.height*m.scale+2)
end
end
gc_pop()
end
function MES.traceback()
local mes=
debug.traceback('',1)
:gsub(': in function',', in')
:gsub(':',' ')
:gsub('\t','')
MES.new('error',mes:sub(
mes:find("\n",2)+1,
mes:find("\n%[C%], in 'xpcall'")
),5)
end
return MES

View File

@@ -1,168 +1,157 @@
local clock = os.clock
local clock=os.clock
local profile = {}
local profile={}
-- function labels
local _labeled = {}
-- function definitions
local _defined = {}
-- time of last call
local _tcalled = {}
-- total execution time
local _telapsed = {}
-- number of calls
local _ncalls = {}
-- list of internal profiler functions
local _internal = {}
local _labeled={} -- function labels
local _defined={} -- function definitions
local _tcalled={} -- time of last call
local _telapsed={}-- total execution time
local _ncalls={} -- number of calls
local _internal={}-- list of internal profiler functions
local getInfo = debug.getinfo
function profile.hooker(event, line, info)
info = info or getInfo(2, 'fnS')
local f = info.func
-- ignore the profiler itself
if _internal[f] or info.what ~= "Lua" then return end
-- get the function name if available
if info.name then _labeled[f] = info.name end
-- find the line definition
if not _defined[f] then
_defined[f] = info.short_src .. ":" .. info.linedefined
_ncalls[f] = 0
_telapsed[f] = 0
end
if _tcalled[f] then
local dt = clock() - _tcalled[f]
_telapsed[f] = _telapsed[f] + dt
_tcalled[f] = nil
end
if event == "tail call" then
local prev = getInfo(3, 'fnS')
profile.hooker("return", line, prev)
profile.hooker("call", line, info)
elseif event == 'call' then
_tcalled[f] = clock()
else
_ncalls[f] = _ncalls[f] + 1
end
local getInfo=debug.getinfo
function profile.hooker(event,line,info)
info=info or getInfo(2,'fnS')
local f=info.func
if _internal[f]then return end-- ignore the profiler itself
if info.name then _labeled[f]=info.name end-- get the function name if available
-- find the line definition
if not _defined[f]then
_defined[f]=info.short_src..":"..info.linedefined
_ncalls[f]=0
_telapsed[f]=0
end
if _tcalled[f]then
local dt=clock()-_tcalled[f]
_telapsed[f]=_telapsed[f]+dt
_tcalled[f]=nil
end
if event=='tail call'then
local prev=getInfo(3,'fnS')
profile.hooker('return',line,prev)
profile.hooker('call',line,info)
elseif event=='call'then
_tcalled[f]=clock()
else
_ncalls[f]=_ncalls[f]+1
end
end
--- Starts collecting data.
function profile.start()
if rawget(_G, 'jit') then
jit.off()
jit.flush()
end
debug.sethook(profile.hooker, "cr")
if jit then
jit.off()
jit.flush()
end
debug.sethook(profile.hooker,'cr')
end
--- Stops collecting data.
function profile.stop()
debug.sethook()
for f in next, _tcalled do
local dt = clock() - _tcalled[f]
_telapsed[f] = _telapsed[f] + dt
_tcalled[f] = nil
end
-- merge closures
local lookup = {}
for f, d in next, _defined do
local id = (_labeled[f] or '?') .. d
local f2 = lookup[id]
if f2 then
_ncalls[f2] = _ncalls[f2] + (_ncalls[f] or 0)
_telapsed[f2] = _telapsed[f2] + (_telapsed[f] or 0)
_defined[f], _labeled[f] = nil, nil
_ncalls[f], _telapsed[f] = nil, nil
else
lookup[id] = f
end
end
collectgarbage('collect')
debug.sethook()
for f in next,_tcalled do
local dt=clock()-_tcalled[f]
_telapsed[f]=_telapsed[f]+dt
_tcalled[f]=nil
end
-- merge closures
local lookup={}
for f,d in next,_defined do
local id=(_labeled[f]or"?")..d
local f2=lookup[id]
if f2 then
_ncalls[f2]=_ncalls[f2]+(_ncalls[f]or 0)
_telapsed[f2]=_telapsed[f2]+(_telapsed[f]or 0)
_defined[f],_labeled[f]=nil,nil
_ncalls[f],_telapsed[f]=nil,nil
else
lookup[id]=f
end
end
collectgarbage()
end
--- Resets all collected data.
function profile.reset()
for f in next, _ncalls do _ncalls[f] = 0 end
for f in next, _telapsed do _telapsed[f] = 0 end
for f in next, _tcalled do _tcalled[f] = nil end
collectgarbage('collect')
for f in next,_ncalls do
_ncalls[f]=0
_telapsed[f]=0
_tcalled[f]=nil
end
collectgarbage()
end
function profile.comp(a, b)
local dt = _telapsed[b] - _telapsed[a]
return dt == 0 and _ncalls[b] < _ncalls[a] or dt < 0
local function _comp(a,b)
local dt=_telapsed[b]-_telapsed[a]
return dt==0 and _ncalls[b]<_ncalls[a]or dt<0
end
--- Iterates all functions that have been called since the profile was started.
-- @param n Number of results (optional)
function profile.query(limit)
local t = {}
for f, n in next, _ncalls do
if n > 0 then
t[#t + 1] = f
end
end
table.sort(t, profile.comp)
if limit then
while #t > limit do
table.remove(t)
end
end
for i, f in ipairs(t) do
local dt = 0
if _tcalled[f] then
dt = clock() - _tcalled[f]
end
t[i] = {i, _labeled[f] or '?', _ncalls[f], _telapsed[f] + dt, _defined[f]}
end
return t
local t={}
for f,n in next,_ncalls do
if n>0 then
t[#t+1]=f
end
end
table.sort(t,_comp)
if limit then while #t>limit do table.remove(t)end end
for i,f in ipairs(t)do
local dt=0
if _tcalled[f]then
dt=clock()-_tcalled[f]
end
t[i]={i,_labeled[f]or"?",math.floor((_telapsed[f]+dt)*1e6)/1e6,_ncalls[f],_defined[f]}
end
return t
end
local cols = {3, 29, 11, 24, 32}
local cols={3,20,8,6,32}
function profile.report(n)
local out = {}
local report = profile.query(n)
for i, row in ipairs(report) do
for j = 1, 5 do
local s = row[j]
local l2 = cols[j]
s = tostring(s)
local l1 = s:len()
if l1 < l2 then
s = s .. (' '):rep(l2 - l1)
elseif l1 > l2 then
s = s:sub(l1 - l2 + 1, l1)
end
row[j] = s
end
out[i] = table.concat(row, ' | ')
end
local out={}
local report=profile.query(n)
for i,row in ipairs(report)do
for j=1,5 do
local s=tostring(row[j])
local l1,l2=#s,cols[j]
if l1<l2 then
s=s..(" "):rep(l2-l1)
elseif l1>l2 then
s=s:sub(l1-l2+1,l1)
end
row[j]=s
end
out[i]=table.concat(row," | ")
end
local row = " +-----+-------------------------------+-------------+--------------------------+----------------------------------+ \n"
local col = " | # | Function | Calls | Time | Code | \n"
local sz = row .. col .. row
if #out > 0 then
sz = sz .. ' | ' .. table.concat(out, ' | \n | ') .. ' | \n'
end
return '\n' .. sz .. row
local row=" +-----+----------------------+----------+--------+----------------------------------+ \n"
local col=" | # | Function | Time | Calls | Code | \n"
local sz=row..col..row
if #out>0 then
sz=sz.." | "..table.concat(out," | \n | ").." | \n"
end
return "\n"..sz..row
end
local switch = false
local switch=false
function profile.switch()
if switch then
profile.stop()
love.system.setClipboardText(PROFILE.report())
PROFILE.reset()
LOG.print("profile report copied!")
else
PROFILE.start()
LOG.print("profile start!")
end
switch = not switch
switch=not switch
if not switch then
profile.stop()
love.system.setClipboardText(profile.report())
profile.reset()
return false
else
profile.start()
return true
end
end
-- store all internal profiler functions
for _, v in next, profile do
if type(v) == "function" then _internal[v] = true end
for _,v in next,profile do
_internal[v]=type(v)=='function'
end
return profile

33
Zframework/require.lua Normal file
View File

@@ -0,0 +1,33 @@
package.cpath=package.cpath..';'..SAVEDIR..'/lib/lib?.so;'..'?.dylib'
local loaded={}
return function(libName)
local require=require
if love.system.getOS()=='OS X'then
require=package.loadlib(libName..'.dylib','luaopen_'..libName)
libname=nil
elseif love.system.getOS()=='Android'then
if not loaded[libName]then
local platform=(function()
local p=io.popen('uname -m')
local arch=p:read('*a'):lower()
p:close()
if arch:find('v8')or arch:find('64')then
return'arm64-v8a'
else
return'armeabi-v7a'
end
end)()
love.filesystem.write(
'lib/libCCloader.so',
love.filesystem.read('data','libAndroid/'..platform..'/libCCloader.so')
)
loaded[libName]=true
end
end
local success,res=pcall(require,libName)
if success and res then
return res
else
MES.new('error',"Cannot load "..libName..": "..res)
end
end

View File

@@ -1,162 +1,210 @@
local gc=love.graphics
local abs=math.abs
local SCR=SCR
local scenes={}
local SCN={
cur="NULL",--Current scene name
swapping=false,--If Swapping
stat={
tar=nil, --Swapping target
style=nil, --Swapping style
mid=nil, --Loading point
time=nil, --Full swap time
draw=nil, --Swap draw func
},
stack={"quit","slowFade"},--Scene stack
mainTouchID=nil, --First touching ID(userdata)
cur='NULL', --Current scene name
swapping=false, --If Swapping
stat={
tar=false, --Swapping target
style=false, --Swapping style
changeTime=false,--Loading point
time=false, --Full swap time
draw=false, --Swap draw func
},
stack={},--Scene stack
prev=false,
args={},--Arguments from previous scene
scenes=scenes,
scenes=scenes,
--Events
update=nil,
draw=nil,
mouseClick=nil,
touchClick=nil,
mouseDown=nil,
mouseMove=nil,
mouseUp=nil,
wheelMoved=nil,
touchDown=nil,
touchUp=nil,
touchMove=nil,
keyDown=nil,
keyUp=nil,
gamepadDown=nil,
gamepadUp=nil,
socketRead=nil,
--Events
update=false,
draw=false,
mouseClick=false,
touchClick=false,
mouseDown=false,
mouseMove=false,
mouseUp=false,
wheelMoved=false,
touchDown=false,
touchUp=false,
touchMove=false,
keyDown=false,
keyUp=false,
gamepadDown=false,
gamepadUp=false,
fileDropped=false,
directoryDropped=false,
resize=false,
socketRead=false,
}--Scene datas, returned
function SCN.add(name,scene)
scenes[name]=scene
scenes[name]=scene
if scene.widgetList then
setmetatable(scene.widgetList,WIDGET.indexMeta)
end
end
function SCN.swapUpdate()
local S=SCN.stat
S.time=S.time-1
if S.time==S.mid then
SCN.init(S.tar,SCN.cur)
collectgarbage()
--Scene swapped this moment
end
if S.time==0 then
SCN.swapping=false
end
function SCN.swapUpdate(dt)
local S=SCN.stat
S.time=S.time-dt
if S.time<S.changeTime and S.time+dt>=S.changeTime then
--Scene swapped this frame
SCN.prev=SCN.cur
SCN.init(S.tar)
SCN.mainTouchID=nil
end
if S.time<0 then
SCN.swapping=false
end
end
function SCN.init(s,org)
local S=scenes[s]
SCN.cur=s
function SCN.init(s)
love.keyboard.setTextInput(false)
SCN.sceneInit=S.sceneInit
SCN.sceneBack=S.sceneBack
SCN.update=S.update
SCN.draw=S.draw
SCN.mouseClick=S.mouseClick
SCN.touchClick=S.touchClick
SCN.mouseDown=S.mouseDown
SCN.mouseMove=S.mouseMove
SCN.mouseUp=S.mouseUp
SCN.wheelMoved=S.wheelMoved
SCN.touchDown=S.touchDown
SCN.touchUp=S.touchUp
SCN.touchMove=S.touchMove
SCN.keyDown=S.keyDown
SCN.keyUp=S.keyUp
SCN.gamepadDown=S.gamepadDown
SCN.gamepadUp=S.gamepadUp
SCN.socketRead=S.socketRead
if S.sceneInit then S.sceneInit(org)end
WIDGET.set(s)
local S=scenes[s]
SCN.cur=s
WIDGET.setScrollHeight(S.widgetScrollHeight)
WIDGET.setWidgetList(S.widgetList)
SCN.sceneInit=S.sceneInit
SCN.sceneBack=S.sceneBack
SCN.mouseDown=S.mouseDown
SCN.mouseMove=S.mouseMove
SCN.mouseUp=S.mouseUp
SCN.mouseClick=S.mouseClick
SCN.wheelMoved=S.wheelMoved
SCN.touchDown=S.touchDown
SCN.touchUp=S.touchUp
SCN.touchMove=S.touchMove
SCN.touchClick=S.touchClick
SCN.keyDown=S.keyDown
SCN.keyUp=S.keyUp
SCN.gamepadDown=S.gamepadDown
SCN.gamepadUp=S.gamepadUp
SCN.fileDropped=S.fileDropped
SCN.directoryDropped=S.directoryDropped
SCN.resize=S.resize
SCN.socketRead=S.socketRead
SCN.update=S.update
SCN.draw=S.draw
if S.sceneInit then
S.sceneInit()
end
end
function SCN.push(tar,style)
if not SCN.swapping then
local m=#SCN.stack
SCN.stack[m+1]=tar or SCN.cur
SCN.stack[m+2]=style or"fade"
end
if not SCN.swapping then
local m=#SCN.stack
SCN.stack[m+1]=tar or SCN.cur
SCN.stack[m+2]=style or'fade'
end
end
function SCN.pop()
local _=SCN.stack
_[#_],_[#_-1]=nil
local s=SCN.stack
s[#s],s[#s-1]=nil
end
local swap={
none={1,0,NULL},--swapTime, changeTime, drawFunction
flash={8,1,function()gc.clear(1,1,1)end},
fade={30,15,function(t)
t=t>15 and 2-t/15 or t/15
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,SCR.w,SCR.h)
end},
fade_togame={120,20,function(t)
t=t>20 and(120-t)/100 or t/20
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,SCR.w,SCR.h)
end},
slowFade={180,90,function(t)
t=t>90 and 2-t/90 or t/90
gc.setColor(0,0,0,t)
gc.rectangle("fill",0,0,SCR.w,SCR.h)
end},
swipeL={30,15,function(t)
t=t/30
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(3-2*t)*2-1
gc.rectangle("fill",t*SCR.w,0,SCR.w,SCR.h)
end},
swipeR={30,15,function(t)
t=t/30
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(2*t-3)*2+1
gc.rectangle("fill",t*SCR.w,0,SCR.w,SCR.h)
end},
swipeD={30,15,function(t)
t=t/30
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(2*t-3)*2+1
gc.rectangle("fill",0,t*SCR.h,SCR.w,SCR.h)
end},
none={
duration=0,changeTime=0,
draw=function()end
},
flash={
duration=.16,changeTime=.08,
draw=function()gc.clear(1,1,1)end
},
fade={
duration=.5,changeTime=.25,
draw=function(t)
t=t>.25 and 2-t*4 or t*4
gc.setColor(0,0,0,t)
gc.rectangle('fill',0,0,SCR.w,SCR.h)
end
},
fade_togame={
duration=2,changeTime=.5,
draw=function(t)
t=t>.5 and(2-t)/1.5 or t*.5
gc.setColor(0,0,0,t)
gc.rectangle('fill',0,0,SCR.w,SCR.h)
end
},
slowFade={
duration=3,changeTime=1.5,
draw=function(t)
t=t>1.5 and (3-t)/1.5 or t/1.5
gc.setColor(0,0,0,t)
gc.rectangle('fill',0,0,SCR.w,SCR.h)
end
},
swipeL={
duration=.5,changeTime=.25,
draw=function(t)
t=t*2
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(3-2*t)*2-1
gc.rectangle('fill',t*SCR.w,0,SCR.w,SCR.h)
end
},
swipeR={
duration=.5,changeTime=.25,
draw=function(t)
t=t*2
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(2*t-3)*2+1
gc.rectangle('fill',t*SCR.w,0,SCR.w,SCR.h)
end
},
swipeD={
duration=.5,changeTime=.25,
draw=function(t)
t=t*2
gc.setColor(.1,.1,.1,1-abs(t-.5))
t=t*t*(2*t-3)*2+1
gc.rectangle('fill',0,t*SCR.h,SCR.w,SCR.h)
end
},
}--Scene swapping animations
function SCN.swapTo(tar,style)--Parallel scene swapping, cannot back
if scenes[tar]then
local S=SCN.stat
if not SCN.swapping and tar~=SCN.cur then
if not style then style="fade"end
SCN.swapping=true
S.tar,S.style=tar,style
S.time,S.mid,S.draw=unpack(swap[style])
end
else
LOG.print("No Scene: "..tar,"warn")
end
function SCN.swapTo(tar,style,...)--Parallel scene swapping, cannot back
if scenes[tar]then
if not SCN.swapping and tar~=SCN.cur then
style=style or'fade'
SCN.swapping=true
SCN.args={...}
local S=SCN.stat
S.tar,S.style=tar,style
S.time=swap[style].duration
S.changeTime=swap[style].changeTime
S.draw=swap[style].draw
end
else
MES.new('warn',"No Scene: "..tar)
end
end
function SCN.go(tar,style)--Normal scene swapping, can back
if scenes[tar]then
SCN.push()
SCN.swapTo(tar,style)
else
LOG.print("No Scene: "..tar,"warn")
end
function SCN.go(tar,style,...)--Normal scene swapping, can back
if scenes[tar]then
SCN.push()
SCN.swapTo(tar,style,...)
else
MES.new('warn',"No Scene: "..tar)
end
end
function SCN.back()
--Leave scene
if SCN.sceneBack then SCN.sceneBack()end
function SCN.back(...)
if SCN.swapping then return end
--Poll&Back to previous Scene
local m=#SCN.stack
if m>0 then
SCN.swapTo(SCN.stack[m-1],SCN.stack[m])
SCN.stack[m],SCN.stack[m-1]=nil
end
--Leave scene
if SCN.sceneBack then
SCN.sceneBack()
end
--Poll&Back to previous Scene
local m=#SCN.stack
if m>0 then
SCN.swapTo(SCN.stack[m-1],SCN.stack[m],...)
SCN.stack[m],SCN.stack[m-1]=nil
end
end
return SCN
return SCN

View File

@@ -1,14 +1,73 @@
local SCR={
w0=1280,h0=720,--Default Screen Size
x=0,y=0,--Up-left Coord on screen
w=0,h=0,--Fullscreen w/h in gc
W=0,H=0,--Fullscreen w/h in shader
rad=0,--Radius
k=1,--Scale size
dpi=1,--DPI from gc.getDPIScale()
xOy=love.math.newTransform(),--Screen transformation object
w0=1280,h0=720, --Default Screen Size
x=0,y=0, --Up-left Coord on screen
cx=0,cy=0, --Center Coord on screen (Center X/Y)
ex=0,ey=0, --Down-right Coord on screen (End X/Y)
w=0,h=0, --Fullscreen w/h for graphic functions
W=0,H=0, --Fullscreen w/h for shader
safeX=0,safeY=0,--Safe area
safeW=0,safeH=0,--Safe area
rad=0, --Radius
k=1, --Scale size
dpi=1, --DPI from gc.getDPIScale()
--Screen transformation objects
origin=love.math.newTransform(),
xOy=love.math.newTransform(),
xOy_m=love.math.newTransform(),
xOy_ul=love.math.newTransform(),
xOy_u=love.math.newTransform(),
xOy_ur=love.math.newTransform(),
xOy_l=love.math.newTransform(),
xOy_r=love.math.newTransform(),
xOy_dl=love.math.newTransform(),
xOy_d=love.math.newTransform(),
xOy_dr=love.math.newTransform(),
}
function SCR.setSize(w,h)
SCR.w0,SCR.h0=w,h
SCR.w0,SCR.h0=w,h
end
return SCR
function SCR.resize(w,h)
SCR.w,SCR.h,SCR.dpi=w,h,love.graphics.getDPIScale()
SCR.W,SCR.H=SCR.w*SCR.dpi,SCR.h*SCR.dpi
SCR.r=h/w
SCR.rad=(w^2+h^2)^.5
SCR.x,SCR.y=0,0
if SCR.r>=SCR.h0/SCR.w0 then
SCR.k=w/SCR.w0
SCR.y=(h-SCR.h0*SCR.k)/2
else
SCR.k=h/SCR.h0
SCR.x=(w-SCR.w0*SCR.k)/2
end
SCR.cx,SCR.cy=SCR.w/2,SCR.h/2
SCR.ex,SCR.ey=SCR.w-SCR.x,SCR.h-SCR.y
SCR.safeX,SCR.safeY,SCR.safeW,SCR.safeH=love.window.getSafeArea()
SCR.origin:setTransformation(0,0)
SCR.xOy:setTransformation(SCR.x,SCR.y,0,SCR.k)
SCR.xOy_m:setTransformation(w/2,h/2,0,SCR.k)
SCR.xOy_ul:setTransformation(0,0,0,SCR.k)
SCR.xOy_u:setTransformation(w/2,0,0,SCR.k)
SCR.xOy_ur:setTransformation(w,0,0,SCR.k)
SCR.xOy_l:setTransformation(0,h/2,0,SCR.k)
SCR.xOy_r:setTransformation(w,h/2,0,SCR.k)
SCR.xOy_dl:setTransformation(0,h,0,SCR.k)
SCR.xOy_d:setTransformation(w/2,h,0,SCR.k)
SCR.xOy_dr:setTransformation(w,h,0,SCR.k)
end
function SCR.info()
return{
("w0,h0 : %d, %d"):format(SCR.w0,SCR.h0),
("x,y : %d, %d"):format(SCR.x,SCR.y),
("cx,cy : %d, %d"):format(SCR.cx,SCR.cy),
("ex,ey : %d, %d"):format(SCR.ex,SCR.ey),
("w,h : %d, %d"):format(SCR.w,SCR.h),
("W,H : %d, %d"):format(SCR.W,SCR.H),
("safeX,safeY : %d, %d"):format(SCR.safeX,SCR.safeY),
("safeW,safeH : %d, %d"):format(SCR.safeW,SCR.safeH),
("k,dpi,rad : %.2f, %d, %.2f"):format(SCR.k,SCR.dpi,SCR.rad),
}
end
return SCR

View File

@@ -1,85 +1,170 @@
local rem=table.remove
local type,rem=type,table.remove
local int,rnd=math.floor,math.random
local interval=MATH.interval
local sfxList={}
local packSetting={}
local Sources={}
local volume=1
local stereo=1
local noteVal={
C=1,c=1,
D=3,d=3,
E=5,e=5,
F=6,f=6,
G=8,g=8,
A=10,a=10,
B=12,b=12,
}
local noteName={'C','C#','D','D#','E','F','F#','G','G#','A','A#','B'}
local function _getTuneHeight(tune)
local octave=tonumber(tune:sub(-1,-1))
if octave then
local tuneHeight=noteVal[tune:sub(1,1)]
if tuneHeight then
tuneHeight=tuneHeight+(octave-1)*12
local s=tune:sub(2,2)
if s=='s'or s=='#'then
tuneHeight=tuneHeight+1
elseif s=='f'or s=='b'then
tuneHeight=tuneHeight-1
end
return tuneHeight
end
end
end
local SFX={}
function SFX.set(L)
SFX.list=L
SFX.len=#L
function SFX.init(list)
assert(type(list)=='table',"Initialize SFX lib with a list of filenames!")
for i=1,#list do table.insert(sfxList,list[i])end
end
function SFX.loadOne(_)
_,SFX.list[_]=SFX.list[_]
local N="media/SFX/".._..".ogg"
if love.filesystem.getInfo(N)then
SFX.list[_]={love.audio.newSource(N,"static")}
else
LOG.print("No SFX file: "..N,5,COLOR.orange)
end
function SFX.load(path)
local c=0
local missing=0
for i=1,#sfxList do
local fullPath=path..sfxList[i]..'.ogg'
if love.filesystem.getInfo(fullPath)then
if Sources[sfxList[i]]then
for j=1,#Sources[sfxList[i]]do
Sources[sfxList[i]][j]:release()
end
end
Sources[sfxList[i]]={love.audio.newSource(fullPath,'static')}
c=c+1
else
LOG("No SFX: "..sfxList[i]..'.ogg',.1)
missing=missing+1
end
end
LOG(c.."/"..#sfxList.." SFX files loaded")
LOG(missing.." SFX files missing")
if missing>0 then
MES.new('info',missing.." SFX files missing")
end
collectgarbage()
end
function SFX.loadAll()
for i=1,#SFX.list do
SFX.loadOne(i)
end
function SFX.loadSample(pack)
assert(type(pack)=='table',"Usage: SFX.loadsample([table])")
assert(pack.name,"No field: name")
assert(pack.path,"No field: path")
local num=1
while love.filesystem.getInfo(pack.path..'/'..num..'.ogg')do
Sources[pack.name..num]={love.audio.newSource(pack.path..'/'..num..'.ogg','static')}
num=num+1
end
local base=(_getTuneHeight(pack.base)or 37)-1
local top=base+num-1
packSetting[pack.name]={base=base,top=top}
LOG((num-1).." "..pack.name.." samples loaded")
end
function SFX.fieldPlay(s,v,P)
SFX.play(s,v,(P.curX+P.sc[2]-5.5)*.15)
function SFX.getCount()
return #sfxList
end
function SFX.play(s,vol,pos)
if SETTING.sfx==0 then return end
local S=SFX.list[s]--Source list
if not S then return end
local n=1
while S[n]:isPlaying()do
n=n+1
if not S[n]then
S[n]=S[1]:clone()
S[n]:seek(0)
break
end
end
S=S[n]--AU_SRC
if S:getChannelCount()==1 then
if pos then
pos=pos*SETTING.stereo
S:setPosition(pos,1-pos^2,0)
else
S:setPosition(0,0,0)
end
end
S:setVolume(((vol or 1)*SETTING.sfx)^1.626)
S:play()
function SFX.setVol(v)
assert(type(v)=='number'and v>=0 and v<=1,'Wrong volume')
volume=v
end
function SFX.fplay(s,vol,pos)
local S=SFX.list[s]--Source list
if not S then return end
local n=1
while S[n]:isPlaying()do
n=n+1
if not S[n]then
S[n]=S[1]:clone()
S[n]:seek(0)
break
end
end
S=S[n]--AU_SRC
if S:getChannelCount()==1 then
if pos then
pos=pos*SETTING.stereo
S:setPosition(pos,1-pos^2,0)
else
S:setPosition(0,0,0)
end
end
S:setVolume(vol^1.626)
S:play()
function SFX.setStereo(v)
assert(type(v)=='number'and v>=0 and v<=1,'Wrong stereo')
stereo=v
end
function SFX.getNoteName(note)
if note<1 then
return'---'
else
note=note-1
local octave=int(note/12)+1
return noteName[note%12+1]..octave
end
end
function SFX.playSample(pack,...)--vol-1, sampSet1, vol-2, sampSet2
if ... then
local arg={...}
local vol
for i=1,#arg do
local a=arg[i]
if type(a)=='number'and a<=1 then
vol=a
else
local base=packSetting[pack].base
local top=packSetting[pack].top
local tune=type(a)=='string'and _getTuneHeight(a)or a--Absolute tune in number
local playTune=tune+rnd(-2,2)
if playTune<=base then--Too low notes
playTune=base+1
elseif playTune>top then--Too high notes
playTune=top
end
SFX.play(pack..playTune-base,vol,nil,tune-playTune)
end
end
end
end
local function _play(name,vol,pos,pitch)
if volume==0 or vol==0 then return end
local S=Sources[name]--Source list
if not S then return end
local n=1
while S[n]:isPlaying()do
n=n+1
if not S[n]then
S[n]=S[1]:clone()
S[n]:seek(0)
break
end
end
S=S[n]--AU_SRC
if S:getChannelCount()==1 then
if pos then
pos=interval(pos,-1,1)*stereo
S:setPosition(pos,1-pos^2,0)
else
S:setPosition(0,0,0)
end
end
S:setVolume(vol^1.626)
S:setPitch(pitch and 1.0594630943592953^pitch or 1)
S:play()
end
SFX.fplay=_play--Play sounds without apply module's volume setting
function SFX.play(name,vol,pos,pitch)
_play(name,(vol or 1)*volume,pos,pitch)
end
function SFX.reset()
for _,L in next,SFX.list do
if type(L)=="table"then
for i=#L,1,-1 do
if not L[i]:isPlaying()then
rem(L,i)
end
end
end
end
for _,L in next,Sources do
if type(L)=='table'then
for i=#L,1,-1 do
if not L[i]:isPlaying()then
rem(L,i)
end
end
end
end
end
return SFX
return SFX

231
Zframework/stringExtend.lua Normal file
View File

@@ -0,0 +1,231 @@
local data=love.data
local STRING={}
local assert,tostring,tonumber=assert,tostring,tonumber
local int,format=math.floor,string.format
local find,sub,gsub,upper=string.find,string.sub,string.gsub,string.upper
local char,byte=string.char,string.byte
--"Replace dollars", replace all $n with ...
function STRING.repD(str,...)
local l={...}
for i=#l,1,-1 do
str=gsub(str,'$'..i,l[i])
end
return str
end
--"Scan arg", scan if str has the arg (format of str is like "-json -q", arg is like "-q")
function STRING.sArg(str,switch)
if find(str.." ",switch.." ")then
return true
end
end
do--function STRING.shiftChar(c)
local shiftMap={
['1']='!',['2']='@',['3']='#',['4']='$',['5']='%',
['6']='^',['7']='&',['8']='*',['9']='(',['0']=')',
['`']='~',['-']='_',['=']='+',
['[']='{',[']']='}',['\\']='|',
[';']=':',['\'']='"',
[',']='<',['.']='>',['/']='?',
}
function STRING.shiftChar(c)
return shiftMap[c]or upper(c)
end
end
function STRING.trim(s)
if not s:find("%S")then return""end
s=s:sub((s:find("%S"))):reverse()
return s:sub((s:find("%S"))):reverse()
end
function STRING.split(s,sep,regex)
local L={}
local p1,p2=1--start,target
if regex then
while p1<=#s do
p2=find(s,sep,p1)or #s+1
L[#L+1]=sub(s,p1,p2-1)
p1=p2+#sep
end
else
while p1<=#s do
p2=find(s,sep,p1,true)or #s+1
L[#L+1]=sub(s,p1,p2-1)
p1=p2+#sep
end
end
return L
end
function STRING.simpEmailCheck(e)
e=STRING.split(e,"@")
if #e~=2 then return false end
if e[1]:sub(-1)=="."or e[2]:sub(-1)=="."then return false end
local e1,e2=STRING.split(e[1],"."),STRING.split(e[2],".")
if #e1*#e2==0 then return false end
for _,v in next,e1 do if #v==0 then return false end end
for _,v in next,e2 do if #v==0 then return false end end
return true
end
function STRING.time_simp(t)
return format("%02d:%02d",int(t/60),int(t%60))
end
function STRING.time(t)
if t<60 then
return format("%.3f\"",t)
elseif t<3600 then
return format("%d'%05.2f\"",int(t/60),int(t%60*100)/100)
else
return format("%d:%.2d'%05.2f\"",int(t/3600),int(t/60%60),int(t%60*100)/100)
end
end
function STRING.UTF8(n)--Simple utf8 coding
assert(type(n)=='number',"Wrong type ("..type(n)..")")
assert(n>=0 and n<2^31,"Out of range ("..n..")")
if n<2^7 then return char(n)
elseif n<2^11 then return char(192+int(n/2^06),128+n%2^6)
elseif n<2^16 then return char(224+int(n/2^12),128+int(n/2^06)%2^6,128+n%2^6)
elseif n<2^21 then return char(240+int(n/2^18),128+int(n/2^12)%2^6,128+int(n/2^06)%2^6,128+n%2^6)
elseif n<2^26 then return char(248+int(n/2^24),128+int(n/2^18)%2^6,128+int(n/2^12)%2^6,128+int(n/2^06)%2^6,128+n%2^6)
elseif n<2^31 then return char(252+int(n/2^30),128+int(n/2^24)%2^6,128+int(n/2^18)%2^6,128+int(n/2^12)%2^6,128+int(n/2^06)%2^6,128+n%2^6)
end
end
do--function STRING.bigInt(t)
local lg=math.log10
local units={"","K","M","B","T","Qa","Qt","Sx","Sp","Oc","No"}
local preUnits={"","U","D","T","Qa","Qt","Sx","Sp","O","N"}
local secUnits={"Dc","Vg","Tg","Qd","Qi","Se","St","Og","Nn","Ce"}--Ce is next-level unit, but DcCe is not used so used here
for _,preU in next,preUnits do for _,secU in next,secUnits do table.insert(units,preU..secU)end end
function STRING.bigInt(t)
if t<1000 then
return tostring(t)
elseif t~=1e999 then
local e=int(lg(t)/3)
return(t/10^(e*3))..units[e+1]
else
return"INF"
end
end
end
function STRING.hexColor(str)--[LOW PERFORMENCE]
assert(type(str)=='string')
if str:sub(1,1)=="#"then str=str:sub(2)end
assert(#str<=8)
local r=(tonumber(str:sub(1,2),16)or 0)/255
local g=(tonumber(str:sub(3,4),16)or 0)/255
local b=(tonumber(str:sub(5,6),16)or 0)/255
local a=(tonumber(str:sub(7,8),16)or 255)/255
return r,g,b,a
end
do--function STRING.urlEncode(s)
local rshift=bit.rshift
local b16={[0]='0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}
function STRING.urlEncode(s)
local out=""
for i=1,#s do
if s:sub(i,i):match("[a-zA-Z0-9]")then
out=out..s:sub(i,i)
else
local b=s:byte(i)
out=out.."%"..b16[rshift(b,4)]..b16[b%16]
end
end
return out
end
end
function STRING.vcsEncrypt(text,key)
local keyLen=#key
local result=""
local buffer=""
for i=0,#text-1 do
buffer=buffer..char((byte(text,i+1)-32+byte(key,i%keyLen+1))%95+32)
if #buffer==26 then
result=result..buffer
buffer=""
end
end
return result..buffer
end
function STRING.vcsDecrypt(text,key)
local keyLen=#key
local result=""
local buffer=""
for i=0,#text-1 do
buffer=buffer..char((byte(text,i+1)-32-byte(key,i%keyLen+1))%95+32)
if #buffer==26 then
result=result..buffer
buffer=""
end
end
return result..buffer
end
function STRING.digezt(text)--Not powerful hash, just protect the original text
local out={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
local seed=26
for i=1,#text do
local c=byte(text,i)
seed=(seed+c)%26
c=c+seed
local pos=c*i%16
local step=(c+i)%4+1
local times=2+(c%6)
for _=1,times do
out[pos+1]=(out[pos+1]+c)%256
pos=(pos+step)%16
end
end
local result=""
for i=1,16 do result=result..char(out[i])end
return result
end
function STRING.readLine(str)
local p=str:find("\n")
if p then
return str:sub(1,p-1),str:sub(p+1)
else
return str,""
end
end
function STRING.readChars(str,n)
return sub(str,1,n),sub(str,n+1)
end
function STRING.packBin(s)
return data.encode('string','base64',data.compress('string','zlib',s))
end
function STRING.unpackBin(str)
local res
res,str=pcall(data.decode,'string','base64',str)
if not res then return end
res,str=pcall(data.decompress,'string','zlib',str)
if res then return str end
end
function STRING.packText(s)
return data.encode('string','base64',data.compress('string','gzip',s))
end
function STRING.unpackText(str)
local res
res,str=pcall(data.decode,'string','base64',str)
if not res then return end
res,str=pcall(data.decompress,'string','gzip',str)
if res then return str end
end
function STRING.packTable(t)
return STRING.packText(JSON.encode(t))
end
function STRING.unpackTable(t)
return JSON.decode(STRING.unpackText(t))
end
return STRING

View File

@@ -1,169 +1,205 @@
local gc=love.graphics
local setColor,setWidth=gc.setColor,gc.setLineWidth
local gc_setColor,gc_setLineWidth=gc.setColor,gc.setLineWidth
local gc_draw,gc_line=gc.draw,gc.line
local gc_rectangle,gc_circle=gc.rectangle,gc.circle
local max,min=math.max,math.min
local rnd=math.random
local rem=table.remove
local ins,rem=table.insert,table.remove
local fx={}
local function normUpdate(S,dt)
S.t=S.t+dt*S.rate
return S.t>1
local function _normUpdate(S,dt)
S.t=S.t+dt*S.rate
return S.t>1
end
local FXupdate={}
function FXupdate.badge(S,dt)
S.t=S.t+dt
if S.t<.2 then
S.x,S.y=S.x1-14,S.y1-14
elseif S.t<.8 then
local t=((S.t-.2)*1.6667)
t=(3-2*t)*t*t
S.x,S.y=S.x1*(1-t)+S.x2*t-14,S.y1*(1-t)+S.y2*t-14
else
S.x,S.y=S.x2-14,S.y2-14
end
return S.t>=1
S.t=S.t+dt
if S.t<.2 then
S.x,S.y=S.x1-14,S.y1-14
elseif S.t<.8 then
local t=((S.t-.2)*1.6667)
t=(3-2*t)*t*t
S.x,S.y=S.x1*(1-t)+S.x2*t-14,S.y1*(1-t)+S.y2*t-14
else
S.x,S.y=S.x2-14,S.y2-14
end
return S.t>=1
end
FXupdate.attack=normUpdate
FXupdate.ripple=normUpdate
FXupdate.rectRipple=normUpdate
FXupdate.shade=normUpdate
FXupdate.attack=_normUpdate
FXupdate.tap=_normUpdate
FXupdate.ripple=_normUpdate
FXupdate.rectRipple=_normUpdate
FXupdate.shade=_normUpdate
function FXupdate.cell(S,dt)
if S.vx then
S.x=S.x+S.vx*S.rate
S.y=S.y+S.vy*S.rate
if S.ax then
S.vx=S.vx+S.ax*S.rate
S.vy=S.vy+S.ay*S.rate
end
end
S.t=S.t+dt*S.rate
return S.t>1
if S.vx then
S.x=S.x+S.vx*S.rate
S.y=S.y+S.vy*S.rate
if S.ax then
S.vx=S.vx+S.ax*S.rate
S.vy=S.vy+S.ay*S.rate
end
end
S.t=S.t+dt*S.rate
return S.t>1
end
FXupdate.line=_normUpdate
local FXdraw={}
function FXdraw.badge(S)
setColor(1,1,1,S.t<.2 and S.t*.6 or S.t<.8 and 1 or(1-S.t)*.6)
gc.draw(IMG.badgeIcon,S.x,S.y)
gc_setColor(1,1,1,S.t<.2 and S.t*.6 or S.t<.8 and 1 or(1-S.t)*.6)
gc_draw(IMG.badgeIcon,S.x,S.y)
end
function FXdraw.attack(S)
setColor(S.r*2,S.g*2,S.b*2,S.a*min(4-S.t*4,1))
gc_setColor(S.r*2,S.g*2,S.b*2,S.a*min(4-S.t*4,1))
setWidth(S.wid)
local t1,t2=max(5*S.t-4,0),min(S.t*4,1)
gc.line(
S.x1*(1-t1)+S.x2*t1,
S.y1*(1-t1)+S.y2*t1,
S.x1*(1-t2)+S.x2*t2,
S.y1*(1-t2)+S.y2*t2
)
gc_setLineWidth(S.wid)
local t1,t2=max(5*S.t-4,0),min(S.t*4,1)
gc_line(
S.x1*(1-t1)+S.x2*t1,
S.y1*(1-t1)+S.y2*t1,
S.x1*(1-t2)+S.x2*t2,
S.y1*(1-t2)+S.y2*t2
)
setWidth(S.wid*.6)
t1,t2=max(4*S.t-3,0),min(S.t*5,1)
gc.line(
S.x1*(1-t1)+S.x2*t1,
S.y1*(1-t1)+S.y2*t1,
S.x1*(1-t2)+S.x2*t2,
S.y1*(1-t2)+S.y2*t2
)
gc_setLineWidth(S.wid*.6)
t1,t2=max(4*S.t-3,0),min(S.t*5,1)
gc_line(
S.x1*(1-t1)+S.x2*t1,
S.y1*(1-t1)+S.y2*t1,
S.x1*(1-t2)+S.x2*t2,
S.y1*(1-t2)+S.y2*t2
)
end
function FXdraw.tap(S)
local t=S.t
gc_setColor(1,1,1,(1-t)*.4)
gc_circle('fill',S.x,S.y,30*(1-t)^.5)
end
function FXdraw.ripple(S)
local t=S.t
setWidth(2)
setColor(1,1,1,1-t)
gc.circle("line",S.x,S.y,t*(2-t)*S.r)
local t=S.t
gc_setLineWidth(2)
gc_setColor(1,1,1,1-t)
gc_circle('line',S.x,S.y,t*(2-t)*S.r)
end
function FXdraw.rectRipple(S)
setWidth(6)
setColor(1,1,1,1-S.t)
local r=(10*S.t)^1.2
gc.rectangle("line",S.x-r,S.y-r,S.w+2*r,S.h+2*r)
gc_setLineWidth(6)
gc_setColor(1,1,1,1-S.t)
local r=(10*S.t)^1.2
gc_rectangle('line',S.x-r,S.y-r,S.w+2*r,S.h+2*r)
end
function FXdraw.shade(S)
setColor(S.r,S.g,S.b,1-S.t)
gc.rectangle("fill",S.x,S.y,S.w,S.h,2)
gc_setColor(S.r,S.g,S.b,1-S.t)
gc_rectangle('fill',S.x,S.y,S.w,S.h,2)
end
function FXdraw.cell(S)
setColor(1,1,1,1-S.t)
gc.draw(S.image,S.x,S.y,nil,S.size,nil,S.cx,S.cy)
gc_setColor(1,1,1,1-S.t)
gc_draw(S.image,S.x,S.y,nil,S.size,nil,S.cx,S.cy)
end
function FXdraw.line(S)
gc_setColor(1,1,1,S.a*(1-S.t))
gc_line(S.x1,S.y1,S.x2,S.y2)
end
local SYSFX={}
function SYSFX.update(dt)
for i=#fx,1,-1 do
if fx[i]:update(dt) then
rem(fx,i)
end
end
for i=#fx,1,-1 do
if fx[i]:update(dt)then
rem(fx,i)
end
end
end
function SYSFX.draw()
for i=1,#fx do
fx[i]:draw()
end
for i=1,#fx do
fx[i]:draw()
end
end
function SYSFX.newBadge(x1,y1,x2,y2)
fx[#fx+1]={
update=FXupdate.badge,
draw=FXdraw.badge,
t=0,
x=x1,y=y1,
x1=x1,y1=y1,
x2=x2,y2=y2,
}
ins(fx,{
update=FXupdate.badge,
draw=FXdraw.badge,
t=0,
x=x1,y=y1,
x1=x1,y1=y1,
x2=x2,y2=y2,
})
end
function SYSFX.newAttack(rate,x1,y1,x2,y2,wid,r,g,b,a)
fx[#fx+1]={
update=FXupdate.attack,
draw=FXdraw.attack,
t=0,
rate=rate,
x1=x1,y1=y1,--Start pos
x2=x2,y2=y2,--End pos
wid=wid,--Line width
r=r,g=g,b=b,a=a,
}
ins(fx,{
update=FXupdate.attack,
draw=FXdraw.attack,
t=0,
rate=rate,
x1=x1,y1=y1,--Start pos
x2=x2,y2=y2,--End pos
wid=wid,--Line width
r=r,g=g,b=b,a=a,
})
end
function SYSFX.newTap(rate,x,y)
local T=
{
update=FXupdate.tap,
draw=FXdraw.tap,
t=0,
rate=rate,
x=x,y=y,
}
ins(fx,T)
end
function SYSFX.newRipple(rate,x,y,r)
fx[#fx+1]={
update=FXupdate.ripple,
draw=FXdraw.ripple,
t=0,
rate=rate,
x=x,y=y,r=r,
}
ins(fx,{
update=FXupdate.ripple,
draw=FXdraw.ripple,
t=0,
rate=rate,
x=x,y=y,r=r,
})
end
function SYSFX.newRectRipple(rate,x,y,w,h)
fx[#fx+1]={
update=FXupdate.rectRipple,
draw=FXdraw.rectRipple,
t=0,
rate=rate,
x=x,y=y,w=w,h=h,
}
ins(fx,{
update=FXupdate.rectRipple,
draw=FXdraw.rectRipple,
t=0,
rate=rate,
x=x,y=y,w=w,h=h,
})
end
function SYSFX.newShade(rate,r,g,b,x,y,w,h)
fx[#fx+1]={
update=FXupdate.shade,
draw=FXdraw.shade,
t=0,
rate=rate,
r=r,g=g,b=b,
x=x,y=y,w=w,h=h,
}
function SYSFX.newShade(rate,x,y,w,h,r,g,b)
ins(fx,{
update=FXupdate.shade,
draw=FXdraw.shade,
t=0,
rate=rate,
x=x,y=y,w=w,h=h,
r=r or 1,g=g or 1,b=b or 1,
})
end
function SYSFX.newCell(rate,image,size,x,y,vx,vy,ax,ay)
fx[#fx+1]={
update=FXupdate.cell,
draw=FXdraw.cell,
t=0,
rate=rate*(.9+rnd()*.2),
image=image,size=size,
cx=image:getWidth()*.5,cy=image:getHeight()*.5,
x=x,y=y,
vx=vx,vy=vy,
ax=ax,ay=ay,
}
ins(fx,{
update=FXupdate.cell,
draw=FXdraw.cell,
t=0,
rate=rate*(.9+rnd()*.2),
image=image,size=size,
cx=image:getWidth()*.5,cy=image:getHeight()*.5,
x=x,y=y,
vx=vx,vy=vy,
ax=ax,ay=ay,
})
end
return SYSFX
function SYSFX.newLine(rate,x1,y1,x2,y2,r,g,b,a)
ins(fx,{
update=FXupdate.line,
draw=FXdraw.line,
t=0,
rate=rate,
x1=x1 or 0,y1=y1 or 0,
x2=x2 or x1 or 1280,y2=y2 or y1 or 720,
r=r or 1,g=g or 1,b=b or 1,a=a or 1,
})
end
return SYSFX

255
Zframework/tableExtend.lua Normal file
View File

@@ -0,0 +1,255 @@
local find=string.find
local rem=table.remove
local next,type=next,type
local TABLE={}
--Get a new filled table
function TABLE.new(val,count)
local L={}
for i=1,count do
L[i]=val
end
return L
end
--Get a copy of [1~#] elements
function TABLE.shift(org,depth)
if not depth then depth=1e99 end
local L={}
for i=1,#org do
if type(org[i])=='table'and depth>0 then
L[i]=TABLE.shift(org[i],depth-1)
else
L[i]=org[i]
end
end
return L
end
--Get a full copy of a table, depth = how many layers will be recreate, default to inf
function TABLE.copy(org,depth)
if not depth then depth=1e99 end
local L={}
for k,v in next,org do
if type(v)=='table'and depth>0 then
L[k]=TABLE.copy(v,depth-1)
else
L[k]=v
end
end
return L
end
--For all things in new, push to old
function TABLE.cover(new,old)
for k,v in next,new do
old[k]=v
end
end
--For all things in new, push to old
function TABLE.coverR(new,old)
for k,v in next,new do
if type(v)=='table'and type(old[k])=='table'then
TABLE.coverR(v,old[k])
else
old[k]=v
end
end
end
--For all things in new if same type in old, push to old
function TABLE.update(new,old)
for k,v in next,new do
if type(v)==type(old[k])then
if type(v)=='table'then
TABLE.update(v,old[k])
else
old[k]=v
end
end
end
end
--For all things in new if no val in old, push to old
function TABLE.complete(new,old)
for k,v in next,new do
if type(v)=='table'then
if old[k]==nil then old[k]={}end
TABLE.complete(v,old[k])
elseif old[k]==nil then
old[k]=v
end
end
end
--Remove [1~#] of table
function TABLE.cut(G)
for i=1,#G do
G[i]=nil
end
end
--Clear table
function TABLE.clear(G)
for k in next,G do
G[k]=nil
end
end
--Remove duplicated value of [1~#]
function TABLE.trimDuplicate(org)
local cache={}
for i=1,#org,-1 do
if cache[org[i]]then
rem(org,i)
else
cache[org[i]]=true
end
end
end
--Discard duplicated value
function TABLE.remDuplicate(org)
local cache={}
for k,v in next,org do
if cache[v]then
org[k]=nil
else
cache[v]=true
end
end
end
--Reverse [1~#]
function TABLE.reverse(org)
local l=#org
for i=1,math.floor(l/2)do
org[i],org[l+1-i]=org[l+1-i],org[i]
end
end
--------------------------
--Find value in [1~#]
function TABLE.find(t,val)
for i=1,#t do if t[i]==val then return i end end
end
--Return next value of [1~#] (by value)
function TABLE.next(t,val)
for i=1,#t do if t[i]==val then return t[i%#t+1]end end
end
--------------------------
--Find value in whole table
function TABLE.search(t,val)
for k,v in next,t do if v==val then return k end end
end
--Re-index string value of a table
function TABLE.reIndex(org)
for k,v in next,org do
if type(v)=='string'then
org[k]=org[v]
end
end
end
--------------------------
--Dump a simple lua table
do--function TABLE.dump(L,t)
local tabs={
[0]="",
"\t",
"\t\t",
"\t\t\t",
"\t\t\t\t",
"\t\t\t\t\t",
}
local function dump(L,t)
local s
if t then
s="{\n"
else
s="return{\n"
t=1
if type(L)~='table'then
return
end
end
local count=1
for k,v in next,L do
local T=type(k)
if T=='number'then
if k==count then
k=""
count=count+1
else
k="["..k.."]="
end
elseif T=='string'then
if find(k,"[^0-9a-zA-Z_]")then
k="[\""..k.."\"]="
else
k=k.."="
end
elseif T=='boolean'then k="["..k.."]="
else error("Error key type!")
end
T=type(v)
if T=='number'then v=tostring(v)
elseif T=='string'then v="\""..v.."\""
elseif T=='table'then v=dump(v,t+1)
elseif T=='boolean'then v=tostring(v)
else error("Error data type!")
end
s=s..tabs[t]..k..v..",\n"
end
return s..tabs[t-1].."}"
end
TABLE.dump=dump
end
--Dump a simple lua table (no whitespaces)
do--function TABLE.dumpDeflate(L,t)
local function dump(L)
local s="return{"
if type(L)~='table'then return end
local count=1
for k,v in next,L do
local T=type(k)
if T=='number'then
if k==count then
k=""
count=count+1
else
k="["..k.."]="
end
elseif T=='string'then
if find(k,"[^0-9a-zA-Z_]")then
k="[\""..k.."\"]="
else
k=k.."="
end
elseif T=='boolean'then k="["..k.."]="
else error("Error key type!")
end
T=type(v)
if T=='number'then v=tostring(v)
elseif T=='string'then v="\""..v.."\""
elseif T=='table'then v=dump(v)
elseif T=='boolean'then v=tostring(v)
else error("Error data type!")
end
end
return s.."}"
end
TABLE.dumpDeflate=dump
end
return TABLE

View File

@@ -1,74 +1,56 @@
local rem=table.remove
local ct=coroutine
local assert=assert
local assert,resume,status=assert,coroutine.resume,coroutine.status
local tasks={}
local TASK={
netTaskCount=0,
}
local TASK={}
function TASK.getCount()
return #tasks
return #tasks
end
function TASK.update()
for i=#tasks,1,-1 do
local T=tasks[i]
assert(ct.resume(T.thread))
if ct.status(T.thread)=="dead"then
if T.net then
TASK.netTaskCount=TASK.netTaskCount-1
end
rem(tasks,i)
end
end
local trigFrame=0
function TASK.update(dt)
trigFrame=trigFrame+dt*60
while trigFrame>=1 do
for i=#tasks,1,-1 do
local T=tasks[i]
if status(T.thread)=='dead'then
rem(tasks,i)
else
assert(resume(T.thread))
end
end
trigFrame=trigFrame-1
end
end
function TASK.new(code,...)
local thread=ct.create(code)
if ...~=nil then ct.resume(thread,...)end
if ct.status(thread)~="dead"then
tasks[#tasks+1]={
thread=thread,
code=code,
args={...},
}
end
end
function TASK.newNet(code,...)
local thread=ct.create(code)
if ...~=nil then ct.resume(thread,...)end
if ct.status(thread)~="dead"then
tasks[#tasks+1]={
thread=thread,
code=code,
args={...},
net=true,
}
end
local thread=coroutine.create(code)
assert(resume(thread,...))
if status(thread)~='dead'then
tasks[#tasks+1]={
thread=thread,
code=code,
args={...},
}
end
end
function TASK.removeTask_code(code)
for i=#tasks,1,-1 do
if tasks[i].code==code then
if tasks[i].net then
TASK.netTaskCount=TASK.netTaskCount-1
end
rem(tasks,i)
end
end
for i=#tasks,1,-1 do
if tasks[i].code==code then
rem(tasks,i)
end
end
end
function TASK.removeTask_iterate(func,...)
for i=#tasks,1,-1 do
if func(tasks[i],...)then
if tasks[i].net then
TASK.netTaskCount=TASK.netTaskCount-1
end
rem(tasks,i)
end
end
for i=#tasks,1,-1 do
if func(tasks[i],...)then
rem(tasks,i)
end
end
end
function TASK.clear()
local i=#tasks
while i>0 do
tasks[i]=nil
i=i-1
end
local i=#tasks
while i>0 do
tasks[i]=nil
i=i-1
end
end
return TASK
return TASK

12
Zframework/test.lua Normal file
View File

@@ -0,0 +1,12 @@
local TEST={}
--Wait for the scene swapping animation to finish
function TEST.yieldUntilNextScene()
while SCN.swapping do YIELD()end
end
function TEST.yieldN(frames)
for _=1,frames do YIELD()end
end
return TEST

View File

@@ -1,126 +1,153 @@
local gc=love.graphics
local rnd=math.random
local rem=table.remove
local setFont,mStr=setFont,mStr
local getColor,setColor=gc.getColor,gc.setColor
local int,rnd=math.floor,math.random
local ins,rem=table.insert,table.remove
local draw=gc.draw
local texts={}
local textFX={}
function textFX.appear(t)
mStr(t.text,t.x,t.y-t.font*.7)
draw(
t.text,t.x,t.y,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.sudden(t)
gc.setColor(1,1,1,1-t.c)
mStr(t.text,t.x,t.y-t.font*.7)
setColor(1,1,1,1-t.c)
draw(
t.text,t.x,t.y,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.fly(t)
mStr(t.text,t.x+(t.c-.5)^3*300,t.y-t.font*.7)
draw(
t.text,t.x+(t.c-.5)^3*300,t.y,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.stretch(t)
gc.push("transform")
gc.translate(t.x,t.y)
if t.c<.3 then gc.scale((.3-t.c)*1.6+1,1)end
mStr(t.text,0,-t.font*.7)
gc.pop()
draw(
t.text,t.x,t.y,
nil,
t.c<.3 and(.3-t.c)*1.6+1 or 1,1,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.drive(t)
gc.push("transform")
gc.translate(t.x,t.y)
if t.c<.3 then gc.shear((.3-t.c)*2,0)end
mStr(t.text,0,-t.font*.7)
gc.pop()
draw(
t.text,t.x,t.y,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5,
t.c<.3 and(.3-t.c)*2 or 0,0
)
end
function textFX.spin(t)
gc.push("transform")
gc.translate(t.x,t.y)
if t.c<.3 then
gc.rotate((.3-t.c)^2*4)
elseif t.c>.8 then
gc.rotate((t.c-.8)^2*-4)
end
mStr(t.text,0,-t.font*.7)
gc.pop()
draw(
t.text,t.x,t.y,
t.c<.3 and(.3-t.c)^2*4 or t.c<.8 and 0 or(t.c-.8)^2*-4,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.flicker(t)
local _,_,_,T=gc.getColor()
gc.setColor(1,1,1,T*(rnd()+.5))
mStr(t.text,t.x,t.y-t.font*.7)
local _,_,_,T=getColor()
setColor(1,1,1,T*(rnd()+.5))
draw(
t.text,t.x,t.y,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.zoomout(t)
gc.push("transform")
local k=t.c^.5*.1+1
gc.translate(t.x,t.y)
gc.scale(k,k)
mStr(t.text,0,-t.font*.7)
gc.pop()
draw(
t.text,t.x,t.y,
nil,
t.c^.5*.1+1,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.beat(t)
gc.push("transform")
gc.translate(t.x,t.y)
if t.c<.3 then
local k=1.3-t.c^2/.3
gc.scale(k,k)
end
mStr(t.text,0,-t.font*.7)
gc.pop()
local k=t.c<.3 and 1.3-t.c^2/.3 or 1
draw(
t.text,t.x,t.y,
nil,
k,k,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
function textFX.score(t)
local _,_,_,T=gc.getColor()
gc.setColor(1,1,1,T*.5)
mStr(t.text,t.x,t.y-t.font*.7-t.c^.2*50)
local _,_,_,T=getColor()
setColor(1,1,1,T*.5)
draw(
t.text,t.x,t.y-0-t.c^.2*50,
nil,
nil,nil,
t.text:getWidth()*.5,t.text:getHeight()*.5
)
end
local TEXT={}
function TEXT.clear()
texts={}
end
function TEXT.getText(text,x,y,font,style,spd,stop)--Another version of TEXT()
return{
c=0,
text=text,
x=x or 0,
y=y or 0,
font=font or 40,
spd=(spd or 1)/60,
stop=stop,
draw=textFX[style]or assert(false,"unavailable type:"..style),
}
texts={}
end
function TEXT.show(text,x,y,font,style,spd,stop)
texts[#texts+1]={
c=0, --Timer
text=text, --String
x=x or 0, --X
y=y or 0, --Y
font=font or 40, --Font
spd=(spd or 1)/60, --Timing speed(1=last 1 sec)
stop=stop, --Stop time(sustained text)
draw=textFX[style]or assert(false,"unavailable type:"..style), --Draw method
}
ins(texts,{
c=0, --Timer
text=gc.newText(FONT.get(int(font/5)*5 or 40),text), --String
x=x or 0, --X
y=y or 0, --Y
spd=(spd or 1), --Timing speed(1=last 1 sec)
stop=stop, --Stop time(sustained text)
draw=assert(textFX[style or'appear'],"no text type:"..style),--Draw method
})
end
function TEXT.update(list)
if not list then list=texts end
for i=#list,1,-1 do
local t=list[i]
t.c=t.c+t.spd
if t.stop then
if t.c>t.stop then
t.c=t.stop
end
end
if t.c>1 then
rem(list,i)
end
end
function TEXT.getText(text,x,y,font,style,spd,stop)--Another version of TEXT.show(), but only return text object, need manual management
return{
c=0,
text=gc.newText(FONT.get(int(font/5)*5 or 40),text),
x=x or 0,
y=y or 0,
spd=(spd or 1),
stop=stop,
draw=textFX[style or'appear']or error("unavailable type:"..style),
}
end
function TEXT.update(dt,list)
if not list then
list=texts
end
for i=#list,1,-1 do
local t=list[i]
t.c=t.c+t.spd*dt
if t.stop then
if t.c>t.stop then
t.c=t.stop
end
end
if t.c>1 then
rem(list,i)
end
end
end
function TEXT.draw(list)
if not list then list=texts end
for i=1,#list do
local t=list[i]
local p=t.c
gc.setColor(1,1,1,p<.2 and p*5 or p<.8 and 1 or 5-p*5)
setFont(t.font)
t:draw()
end
if not list then
list=texts
end
for i=1,#list do
local t=list[i]
local p=t.c
setColor(1,1,1,p<.2 and p*5 or p<.8 and 1 or 5-p*5)
t:draw()
end
end
return TEXT
return TEXT

View File

@@ -1,688 +0,0 @@
local gc=love.graphics
local int=math.floor
local sub,find,format=string.sub,string.find,string.format
local ins=table.insert
do--LOADLIB
local libs={
CC={
Windows="CCloader",
Linux="CCloader",
Android="libCCloader.so",
libFunc="luaopen_CCloader",
},
NETlib={
Windows="client",
Linux="client",
Android="client.so",
libFunc="luaopen_client",
},
}
function LOADLIB(name)
local libName=libs[name]
if SYSTEM=="Windows"or SYSTEM=="Linux"then
local success,message=require(libName[SYSTEM])
if success then
return success
else
LOG.print("Cannot load "..name..": "..message,"warn",COLOR.red)
end
elseif SYSTEM=="Android"then
local fs=love.filesystem
local platform={"arm64-v8a","armeabi-v7a"}
local libFunc
for i=1,#platform do
local soFile,size=fs.read("data","libAndroid/"..platform[i].."/"..libName.Android)
if soFile then
local success,message=fs.write(libName.Android,soFile,size)
if success then
libFunc,message=package.loadlib(table.concat({fs.getSaveDirectory(),libName.Android},"/"),libName.libFunc)
if libFunc then
LOG.print(name.." lib loaded","warn",COLOR.green)
break
else
LOG.print("Cannot load "..name..": "..message,"warn",COLOR.red)
end
else
LOG.print("Write "..name.."-"..platform[i].." to saving failed: "..message,"warn",COLOR.red)
end
else
LOG.print("Read "..name.."-"..platform[i].." failed","warn",COLOR.red)
end
end
if not libFunc then
LOG.print("failed to load "..name,"warn",COLOR.red)
return
end
return libFunc()
else
LOG.print("No "..name.." for "..SYSTEM,"warn",COLOR.red)
return
end
return true
end
end
do--setFont
local newFont=gc.setNewFont
local setNewFont=gc.setFont
local fontCache,currentFontSize={}
if love.filesystem.getInfo("font.ttf")then
local fontData=love.filesystem.newFile("font.ttf")
function setFont(s)
if s~=currentFontSize then
if not fontCache[s]then
fontCache[s]=newFont(fontData,s)
end
setNewFont(fontCache[s])
currentFontSize=s
end
end
function getFont(s)
if not fontCache[s]then
fontCache[s]=newFont(fontData,s)
end
return fontCache[s]
end
else
function setFont(s)
if s~=currentFontSize then
if not fontCache[s]then
fontCache[s]=newFont(s)
end
setNewFont(fontCache[s])
currentFontSize=s
end
end
function getFont(s)
if not fontCache[s]then
fontCache[s]=newFont(s)
end
return fontCache[s]
end
end
end
do--upperChar
local upper=string.upper
upperList={
["1"]="!",["2"]="@",["3"]="#",["4"]="$",["5"]="%",
["6"]="^",["7"]="&",["8"]="*",["9"]="(",["0"]=")",
["`"]="~",["-"]="_",["="]="+",
["["]="{",["]"]="}",["\\"]="|",
[";"]=":",["'"]="\"",
[","]="<",["."]=">",["/"]="?",
}
function upperChar(c)
return upperList[c]or upper(c)
end
end
do--dumpTable
local tabs={
[0]="",
"\t",
"\t\t",
"\t\t\t",
"\t\t\t\t",
"\t\t\t\t\t",
}
function dumpTable(L,t)
local s
if t then
s="{\n"
else
s="return{\n"
t=1
if type(L)~="table"then
return
end
end
local count=1
for k,v in next,L do
local T=type(k)
if T=="number"then
if k==count then
k=""
count=count+1
else
k="["..k.."]="
end
elseif T=="string"then
if find(k,"[^0-9a-zA-Z_]")then
k="[\""..k.."\"]="
else
k=k.."="
end
elseif T=="boolean"then k="["..k.."]="
else assert(false,"Error key type!")
end
T=type(v)
if T=="number"then v=tostring(v)
elseif T=="string"then v="\""..v.."\""
elseif T=="table"then v=dumpTable(v,t+1)
elseif T=="boolean"then v=tostring(v)
else assert(false,"Error data type!")
end
s=s..tabs[t]..k..v..",\n"
end
return s..tabs[t-1].."}"
end
end
do--json
--
-- json.lua
--
-- Copyright (c) 2020 rxi
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy of
-- this software and associated documentation files (the "Software"), to deal in
-- the Software without restriction, including without limitation the rights to
-- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-- of the Software, and to permit persons to whom the Software is furnished to do
-- so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in all
-- copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
--
local char=string.char
json = {}
-------------------------------------------------------------------------------
-- Encode
-------------------------------------------------------------------------------
local encode
local escape_char_map = {
["\\"] = "\\",
["\""] = "\"",
["\b"] = "b",
["\f"] = "f",
["\n"] = "n",
["\r"] = "r",
["\t"] = "t"
}
local escape_char_map_inv = {["/"] = "/"}
for k, v in pairs(escape_char_map) do escape_char_map_inv[v] = k end
local function escape_char(c)
return "\\" .. (escape_char_map[c] or string.format("u%04x", c:byte()))
end
local function encode_nil() return "null" end
local function encode_table(val, stack)
local res = {}
stack = stack or {}
-- Circular reference?
if stack[val] then error("circular reference") end
stack[val] = true
if rawget(val, 1) ~= nil or next(val) == nil then
-- Treat as array -- check keys are valid and it is not sparse
local n = 0
for k in pairs(val) do
if type(k) ~= "number" then
error("invalid table: mixed or invalid key types")
end
n = n + 1
end
if n ~= #val then error("invalid table: sparse array") end
-- Encode
for _, v in ipairs(val) do ins(res, encode(v, stack)) end
stack[val] = nil
return "[" .. table.concat(res, ",") .. "]"
else
-- Treat as an object
for k, v in pairs(val) do
if type(k) ~= "string" then
error("invalid table: mixed or invalid key types")
end
ins(res, encode(k, stack) .. ":" .. encode(v, stack))
end
stack[val] = nil
return "{" .. table.concat(res, ",") .. "}"
end
end
local function encode_string(val)
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
end
local function encode_number(val)
-- Check for NaN, -inf and inf
if val ~= val or val <= -math.huge or val >= math.huge then
error("unexpected number value '" .. tostring(val) .. "'")
end
return string.format("%.14g", val)
end
local type_func_map = {
["nil"] = encode_nil,
["table"] = encode_table,
["string"] = encode_string,
["number"] = encode_number,
["boolean"] = tostring
}
encode = function(val, stack)
local t = type(val)
local f = type_func_map[t]
if f then return f(val, stack) end
error("unexpected type '" .. t .. "'")
end
function json.encode(val)
local a,b=pcall(encode,val)
if a then
return b
else
LOG.print(text.jsonError..": "..(b or"uknErr"),"warn")
return
end
end
-------------------------------------------------------------------------------
-- Decode
-------------------------------------------------------------------------------
local parse
local function create_set(...)
local res = {}
for i = 1, select("#", ...) do res[select(i, ...)] = true end
return res
end
local space_chars = create_set(" ", "\t", "\r", "\n")
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
local literals = create_set("true", "false", "null")
local literal_map = {["true"] = true, ["false"] = false, ["null"] = nil}
local function next_char(str, idx, set, negate)
for i = idx, #str do if set[str:sub(i, i)] ~= negate then return i end end
return #str + 1
end
local function decode_error(str, idx, msg)
local line_count = 1
local col_count = 1
for i = 1, idx - 1 do
col_count = col_count + 1
if str:sub(i, i) == "\n" then
line_count = line_count + 1
col_count = 1
end
end
error(string.format("%s at line %d col %d", msg, line_count, col_count))
end
local function codepoint_to_utf8(n)
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
local f = math.floor
if n <= 0x7f then
return char(n)
elseif n <= 0x7ff then
return char(f(n / 64) + 192, n % 64 + 128)
elseif n <= 0xffff then
return char(f(n / 4096) + 224, f(n % 4096 / 64) + 128,
n % 64 + 128)
elseif n <= 0x10ffff then
return char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
f(n % 4096 / 64) + 128, n % 64 + 128)
end
error(string.format("invalid unicode codepoint '%x'", n))
end
local function parse_unicode_escape(s)
local n1 = tonumber(s:sub(1, 4), 16)
local n2 = tonumber(s:sub(7, 10), 16)
-- Surrogate pair?
if n2 then
return
codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
else
return codepoint_to_utf8(n1)
end
end
local function parse_string(str, i)
local res = ""
local j = i + 1
local k = j
while j <= #str do
local x = str:byte(j)
if x < 32 then
decode_error(str, j, "control character in string")
elseif x == 92 then -- `\`: Escape
res = res .. str:sub(k, j - 1)
j = j + 1
local c = str:sub(j, j)
if c == "u" then
local hex = str:match("^[dD][89aAbB]%x%x\\u%x%x%x%x", j + 1) or
str:match("^%x%x%x%x", j + 1) or
decode_error(str, j - 1,
"invalid unicode escape in string")
res = res .. parse_unicode_escape(hex)
j = j + #hex
else
if not escape_chars[c] then
decode_error(str, j - 1,
"invalid escape char '" .. c .. "' in string")
end
res = res .. escape_char_map_inv[c]
end
k = j + 1
elseif x == 34 then -- `"`: End of string
res = res .. str:sub(k, j - 1)
return res, j + 1
end
j = j + 1
end
decode_error(str, i, "expected closing quote for string")
end
local function parse_number(str, i)
local x = next_char(str, i, delim_chars)
local s = str:sub(i, x - 1)
local n = tonumber(s)
if not n then decode_error(str, i, "invalid number '" .. s .. "'") end
return n, x
end
local function parse_literal(str, i)
local x = next_char(str, i, delim_chars)
local word = str:sub(i, x - 1)
if not literals[word] then
decode_error(str, i, "invalid literal '" .. word .. "'")
end
return literal_map[word], x
end
local function parse_array(str, i)
local res = {}
local n = 1
i = i + 1
while 1 do
local x
i = next_char(str, i, space_chars, true)
-- Empty / end of array?
if str:sub(i, i) == "]" then
i = i + 1
break
end
-- Read token
x, i = parse(str, i)
res[n] = x
n = n + 1
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "]" then break end
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
end
return res, i
end
local function parse_object(str, i)
local res = {}
i = i + 1
while 1 do
local key, val
i = next_char(str, i, space_chars, true)
-- Empty / end of object?
if str:sub(i, i) == "}" then
i = i + 1
break
end
-- Read key
if str:sub(i, i) ~= '"' then
decode_error(str, i, "expected string for key")
end
key, i = parse(str, i)
-- Read ':' delimiter
i = next_char(str, i, space_chars, true)
if str:sub(i, i) ~= ":" then
decode_error(str, i, "expected ':' after key")
end
i = next_char(str, i + 1, space_chars, true)
-- Read value
val, i = parse(str, i)
-- Set
res[key] = val
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "}" then break end
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
end
return res, i
end
local char_func_map = {
['"'] = parse_string,
["0"] = parse_number,
["1"] = parse_number,
["2"] = parse_number,
["3"] = parse_number,
["4"] = parse_number,
["5"] = parse_number,
["6"] = parse_number,
["7"] = parse_number,
["8"] = parse_number,
["9"] = parse_number,
["-"] = parse_number,
["t"] = parse_literal,
["f"] = parse_literal,
["n"] = parse_literal,
["["] = parse_array,
["{"] = parse_object
}
function parse(str, idx)
local chr = str:sub(idx, idx)
local f = char_func_map[chr]
if f then return f(str, idx) end
decode_error(str, idx, "unexpected character '" .. chr .. "'")
end
local function decode(str)
if type(str) ~= "string" then
error("expected argument of type string, got " .. type(str))
end
local res, idx = parse(str, next_char(str, 1, space_chars, true))
idx = next_char(str, idx, space_chars, true)
if idx <= #str then decode_error(str, idx, "trailing garbage") end
return res
end
function json.decode(str)
local a,b=pcall(decode,str)
if a then
return b
else
LOG.print(text.jsonError..": "..(b or"uknErr"),"warn")
return
end
end
end
do--urlencode
local rshift=bit.rshift
local b16={[0]="0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}
function urlEncode(str)
local out=""
for i=1,#str do
if str:sub(i,i):match("[a-zA-Z0-9]")then
out=out..str:sub(i,i)
else
local b=str:byte(i)
out=out.."%"..b16[rshift(b,4)]..b16[b%16]
end
end
return out
end
end
do--httpRequest & wsConnect
client=LOADLIB("NETlib")
if client then
function httpRequest(tick,path,method,header,body)
local task,err=client.httpraw{
url="http://krakens.tpddns.cn:10026"..path,
method=method or"GET",
header=header,
body=body,
}
if task then
TASK.newNet(tick,task)
else
LOG.print("NETlib error: "..err,"warn")
end
TASK.netTaskCount=TASK.netTaskCount+1
end
function wsConnect(tick,path,header)
local task,err=client.wsraw{
url="ws://krakens.tpddns.cn:10026"..path,
origin="krakens.tpddns.cn",
header=header,
}
if task then
TASK.newNet(tick,task)
else
LOG.print("NETlib error: "..err,"warn")
end
TASK.netTaskCount=TASK.netTaskCount+1
end
function wsWrite(data)
if WSCONN then
local writeErr=client.write(WSCONN,data)
if writeErr then
LOG.print(writeErr,"error")
return
end
return true
else
LOG.print(text.wsNoConn,"warn")
end
end
else
local function noNetLib()
LOG.print("[NO NETlib]",5,COLOR.yellow)
end
httpRequest=noNetLib
wsConnect=noNetLib
wsWrite=noNetLib
end
end
do--wheelScroll
local floatWheel=0
function wheelScroll(y)
if y>0 then
if floatWheel<0 then floatWheel=0 end
floatWheel=floatWheel+y^1.2
elseif y<0 then
if floatWheel>0 then floatWheel=0 end
floatWheel=floatWheel-(-y)^1.2
end
while floatWheel>=1 do
love.keypressed("up")
floatWheel=floatWheel-1
end
while floatWheel<=-1 do
love.keypressed("down")
floatWheel=floatWheel+1
end
end
end
function copyList(org)
local L={}
for i=1,#org do
if type(org[i])~="table"then
L[i]=org[i]
else
L[i]=copyList(org[i])
end
end
return L
end
function copyTable(org)
local L={}
for k,v in next,org do
if type(v)~="table"then
L[k]=v
else
L[k]=copyTable(v)
end
end
return L
end
function addToTable(G,base)--For all things in G if same type in base, push to base
for k,v in next,G do
if type(v)==type(base[k])then
if type(v)=="table"then
addToTable(v,base[k])
else
base[k]=v
end
end
end
end
function completeTable(G,base)--For all things in G if no val in base, push to base
for k,v in next,G do
if base[k]==nil then
base[k]=v
elseif type(v)=="table"and type(base[k])=="table"then
completeTable(v,base[k])
end
end
end
function splitStr(s,sep)
local L={}
local p1,p2=1--start,target
while p1<=#s do
p2=find(s,sep,p1)or #s+1
L[#L+1]=sub(s,p1,p2-1)
p1=p2+#sep
end
return L
end
function toTime(s)
if s<60 then
return format("%.3fs",s)
elseif s<3600 then
return format("%d:%.2f",int(s/60),s%60)
else
local h=int(s/3600)
return format("%d:%d:%.2f",h,int(s/60%60),s%60)
end
end
function mStr(s,x,y)
gc.printf(s,x-626,y,1252,"center")
end
function mText(s,x,y)
gc.draw(s,x-s:getWidth()*.5,y)
end
function mDraw(s,x,y,a,k)
gc.draw(s,x,y,a,k,nil,s:getWidth()*.5,s:getHeight()*.5)
end

View File

@@ -1,8 +1,12 @@
local level={0,0,.01,.015,.02,.03,.04,.05,.06,.07}
local level={0,0,.01,.016,.023,.03,.04,.05,.06,.07,.08,.09,.12,.15}
local vib=love.system.vibrate
return function(t)
local L=SETTING.vib
if L>0 then
vib(level[L+t])
end
end
return love.system.getOS()=='iOS'and
function(t)
t=level[t]
if t then vib(t<=.03 and 1 or t<=.09 and 2 or 3)end
end
or
function(t)
t=level[t]
if t then vib(t)end
end

View File

@@ -1,117 +1,132 @@
local rnd=math.random
local rem=table.remove
local voiceQueue={free=0}
local bank={}--{vocName1={SRC1s},vocName2={SRC2s},...}
local VOC={}
VOC.list={}
local volume=1
local diversion=0
local VOC={
getCount=function()return 0 end,
getQueueCount=function()return 0 end,
load=function()error("Cannot load before init!")end,
getFreeChannel=NULL,
play=NULL,
update=NULL,
}
function VOC.setDiversion(n)
assert(type(n)=='number'and n>0 and n<12,'Wrong div')
diversion=n
end
function VOC.setVol(v)
assert(type(v)=='number'and v>=0 and v<=1,'Wrong volume')
volume=v
end
function VOC.init(list)
VOC.init=nil
local rem=table.remove
local voiceQueue={free=0}
local bank={}--{vocName1={SRC1s},vocName2={SRC2s},...}
local Source={}
local function loadVoiceFile(N,vocName)
local fileName="media/VOICE/"..SETTING.cv.."/"..vocName..".ogg"
if love.filesystem.getInfo(fileName)then
bank[vocName]={love.audio.newSource(fileName,"static")}
table.insert(VOC.list[N],vocName)
return true
end
end
function VOC.set(L)
VOC.name=L
VOC.len=#L
end
local count=#list function VOC.getCount()return count end
local function _loadVoiceFile(path,N,vocName)
local fullPath=path..vocName..'.ogg'
if love.filesystem.getInfo(fullPath)then
bank[vocName]={love.audio.newSource(fullPath,'stream')}
table.insert(Source[N],vocName)
return true
end
end
--Load voice with string
local function _getVoice(str)
local L=bank[str]
local n=1
while L[n]:isPlaying()do
n=n+1
if not L[n]then
L[n]=L[1]:clone()
L[n]:seek(0)
break
end
end
return L[n]
end
function VOC.load(path)
for i=1,count do
Source[list[i]]={}
function VOC.loadOne(name)
local N=VOC.name[name]
VOC.list[N]={}
local n=0
repeat n=n+1 until not _loadVoiceFile(path,list[i],list[i]..'_'..n)
local i=0
repeat i=i+1 until not loadVoiceFile(N,N.."_"..i)
if n==1 then
if not _loadVoiceFile(path,list[i],list[i])then
LOG("No VOC: "..list[i],.1)
end
end
if not Source[list[i]][1]then
Source[list[i]]=nil
end
end
if i==1 then
if not loadVoiceFile(N,N)then
LOG.print("No VOICE file: "..N,5,COLOR.orange)
end
end
if not VOC.list[N][1]then VOC.list[N]=nil end
end
function VOC.loadAll()
for i=1,#VOC.name do
VOC.loadOne(i)
end
collectgarbage()
end
function VOC.getQueueCount()
return #voiceQueue
end
function VOC.getFreeChannel()
local l=#voiceQueue
for i=1,l do
if #voiceQueue[i]==0 then return i end
end
voiceQueue[l+1]={s=0}
return l+1
end
function VOC.getFreeChannel()
local l=#voiceQueue
for i=1,l do
if #voiceQueue[i]==0 then return i end
end
voiceQueue[l+1]={s=0}
return l+1
function VOC.play(s,chn)
if volume>0 then
local _=Source[s]
if not _ then return end
if chn then
local L=voiceQueue[chn]
L[#L+1]=_[rnd(#_)]
L.s=1
--Add to queue[chn]
else
voiceQueue[VOC.getFreeChannel()]={s=1,_[rnd(#_)]}
--Create new channel & play
end
end
end
function VOC.update()
for i=#voiceQueue,1,-1 do
local Q=voiceQueue[i]
if Q.s==0 then--Free channel, auto delete when >3
if i>3 then
rem(voiceQueue,i)
end
elseif Q.s==1 then--Waiting load source
Q[1]=_getVoice(Q[1])
Q[1]:setVolume(volume)
Q[1]:setPitch(1.0594630943592953^(diversion*(rnd()*2-1)))
Q[1]:play()
Q.s=Q[2]and 2 or 4
elseif Q.s==2 then--Playing 1,ready 2
if Q[1]:getDuration()-Q[1]:tell()<.08 then
Q[2]=_getVoice(Q[2])
Q[2]:setVolume(volume)
Q[1]:setPitch(1.0594630943592953^(diversion*(rnd()*2-1)))
Q[2]:play()
Q.s=3
end
elseif Q.s==3 then--Playing 12 same time
if not Q[1]:isPlaying()then
for j=1,#Q do
Q[j]=Q[j+1]
end
Q.s=Q[2]and 2 or 4
end
elseif Q.s==4 then--Playing last
if not Q[1].isPlaying(Q[1])then
Q[1]=nil
Q.s=0
end
end
end
end
end
end
function VOC.getCount()
return #voiceQueue
end
local function getVoice(str)
local L=bank[str]
local n=1
while L[n]:isPlaying()do
n=n+1
if not L[n]then
L[n]=L[1]:clone()
L[n]:seek(0)
break
end
end
return L[n]
--Load voice with string
end
function VOC.update()
for i=#voiceQueue,1,-1 do
local Q=voiceQueue[i]
if Q.s==0 then--Free channel, auto delete when >3
if i>3 then
rem(voiceQueue,i)
end
elseif Q.s==1 then--Waiting load source
Q[1]=getVoice(Q[1])
Q[1]:setVolume(SETTING.voc)
Q[1]:play()
Q.s=Q[2]and 2 or 4
elseif Q.s==2 then--Playing 1,ready 2
if Q[1]:getDuration()-Q[1]:tell()<.08 then
Q[2]=getVoice(Q[2])
Q[2]:setVolume(SETTING.voc)
Q[2]:play()
Q.s=3
end
elseif Q.s==3 then--Playing 12 same time
if not Q[1]:isPlaying()then
for j=1,#Q do
Q[j]=Q[j+1]
end
Q.s=Q[2]and 2 or 4
end
elseif Q.s==4 then--Playing last
if not Q[1].isPlaying(Q[1])then
Q[1]=nil
Q.s=0
end
end
end
end
function VOC.play(s,chn)
if SETTING.voc>0 then
local _=VOC.list[s]
if not _ then return end
if chn then
local L=voiceQueue[chn]
L[#L+1]=_[rnd(#_)]
L.s=1
--Add to queue[chn]
else
voiceQueue[VOC.getFreeChannel()]={s=1,_[rnd(#_)]}
--Create new channel & play
end
end
end
return VOC
return VOC

191
Zframework/websocket.lua Normal file
View File

@@ -0,0 +1,191 @@
local host=
-- '127.0.0.1'
-- '192.168.114.102'
'game.techmino.org'
local port='10026'
local path='/tech/socket/v1'
-- lua + LÖVE threading websocket client
-- Original pure lua ver. by flaribbit and Particle_G
-- Threading version by MrZ
local type=type
local timer=love.timer.getTime
local CHN=love.thread.newChannel()
local CHN_getCount,CHN_push,CHN_pop=CHN.getCount,CHN.push,CHN.pop
local TRD=love.thread.newThread("\n")
local TRD_isRunning=TRD.isRunning
local WS={}
local wsList=setmetatable({},{
__index=function(l,k)
local ws={
real=false,
status='dead',
lastPongTime=timer(),
sendTimer=0,
alertTimer=0,
pongTimer=0,
}
l[k]=ws
return ws
end
})
function WS.switchHost(_1,_2,_3)
for k in next,wsList do
WS.close(k)
end
host=_1
port=_2 or port
path=_3 or path
end
function WS.connect(name,subPath,body,timeout)
if wsList[name]and wsList[name].thread then
wsList[name].thread:release()
end
local ws={
real=true,
thread=love.thread.newThread('Zframework/websocket_thread.lua'),
triggerCHN=love.thread.newChannel(),
sendCHN=love.thread.newChannel(),
readCHN=love.thread.newChannel(),
lastPingTime=0,
lastPongTime=timer(),
pingInterval=6,
status='connecting',--'connecting', 'running', 'dead'
sendTimer=0,
alertTimer=0,
pongTimer=0,
}
wsList[name]=ws
ws.thread:start(ws.triggerCHN,ws.sendCHN,ws.readCHN)
CHN_push(ws.sendCHN,host)
CHN_push(ws.sendCHN,port)
CHN_push(ws.sendCHN,path..subPath)
CHN_push(ws.sendCHN,body or"")
CHN_push(ws.sendCHN,timeout or 2.6)
end
function WS.status(name)
local ws=wsList[name]
return ws.status or'dead'
end
function WS.getTimers(name)
local ws=wsList[name]
return ws.pongTimer,ws.sendTimer,ws.alertTimer
end
function WS.setPingInterval(name,time)
local ws=wsList[name]
ws.pingInterval=math.max(time or 2.6,2.6)
end
function WS.alert(name)
local ws=wsList[name]
ws.alertTimer=2.6
end
local OPcode={
continue=0,
text=1,
binary=2,
close=8,
ping=9,
pong=10,
}
local OPname={
[0]='continue',
[1]='text',
[2]='binary',
[8]='close',
[9]='ping',
[10]='pong',
}
function WS.send(name,message,op)
if type(message)=='string'then
local ws=wsList[name]
if ws.real and ws.status=='running'then
CHN_push(ws.sendCHN,op and OPcode[op]or 2)--2=binary
CHN_push(ws.sendCHN,message)
ws.lastPingTime=timer()
ws.sendTimer=1
end
else
MES.new('error',"Attempt to send non-string value!")
MES.traceback()
end
end
function WS.read(name)
local ws=wsList[name]
if ws.real and ws.status~='connecting'and CHN_getCount(ws.readCHN)>=2 then
local op,message=CHN_pop(ws.readCHN),CHN_pop(ws.readCHN)
if op==8 then--8=close
ws.status='dead'
elseif op==9 then--9=ping
WS.send(name,message or"",'pong')
end
ws.lastPongTime=timer()
ws.pongTimer=1
return message,OPname[op]or op
end
end
function WS.close(name)
local ws=wsList[name]
if ws.real then
CHN_push(ws.sendCHN,8)--close
CHN_push(ws.sendCHN,"")
ws.status='dead'
end
end
function WS.update(dt)
local time=timer()
for name,ws in next,wsList do
if ws.real and ws.status~='dead'then
if TRD_isRunning(ws.thread)then
if CHN_getCount(ws.triggerCHN)==0 then
CHN_push(ws.triggerCHN,0)
end
if ws.status=='connecting'then
local mes=CHN_pop(ws.readCHN)
if mes then
if mes=='success'then
ws.status='running'
ws.lastPingTime=time
ws.lastPongTime=time
ws.pongTimer=1
else
ws.status='dead'
MES.new('warn',text.wsFailed..": "..(mes=="timeout"and text.netTimeout or mes))
end
end
elseif ws.status=='running'then
if time-ws.lastPingTime>ws.pingInterval then
WS.send(name,"",'pong')
end
if time-ws.lastPongTime>6+2*ws.pingInterval then
WS.close(name)
end
end
if ws.sendTimer>0 then ws.sendTimer=ws.sendTimer-dt end
if ws.pongTimer>0 then ws.pongTimer=ws.pongTimer-dt end
if ws.alertTimer>0 then ws.alertTimer=ws.alertTimer-dt end
else
ws.status='dead'
local err=ws.thread:getError()
if err then
err=err:sub((err:find(":",(err:find(":")or 0)+1)or 0)+1,(err:find("\n")or 0)-1)
MES.new('warn',text.wsClose..err)
WS.alert(name)
end
end
end
end
end
return WS

View File

@@ -0,0 +1,191 @@
local triggerCHN,sendCHN,readCHN=...
local CHN_demand,CHN_getCount=triggerCHN.demand,triggerCHN.getCount
local CHN_push,CHN_pop=triggerCHN.push,triggerCHN.pop
local SOCK=require'socket'.tcp()
local JSON=require'Zframework.json'
do--Connect
local host=CHN_demand(sendCHN)
local port=CHN_demand(sendCHN)
local path=CHN_demand(sendCHN)
local body=CHN_demand(sendCHN)
local timeout=CHN_demand(sendCHN)
SOCK:settimeout(timeout)
local res,err=SOCK:connect(host,port)
assert(res,err)
--WebSocket handshake
if not body then body=''end
SOCK:send(
'GET '..path..' HTTP/1.1\r\n'..
'Host: '..host..':'..port..'\r\n'..
'Connection: Upgrade\r\n'..
'Upgrade: websocket\r\n'..
'Content-Type: application/json\r\n'..
'Content-Length: '..#body..'\r\n'..
'Sec-WebSocket-Version: 13\r\n'..
'Sec-WebSocket-Key: osT3F7mvlojIvf3/8uIsJQ==\r\n\r\n'..--secKey
body
)
--First line of HTTP
res,err=SOCK:receive('*l')
assert(res,err)
local code,ctLen
code=res:find(' ')
code=res:sub(code+1,code+3)
--Get body length from headers and remove headers
repeat
res,err=SOCK:receive('*l')
assert(res,err)
if not ctLen and res:find('length')then
ctLen=tonumber(res:match('%d+'))
end
until res==''
--Result
if ctLen then
if code=='101'then
CHN_push(readCHN,'success')
else
res,err=SOCK:receive(ctLen)
res=JSON.decode(assert(res,err))
error((code or"XXX")..":"..(res and res.reason or"Server Error"))
end
end
SOCK:settimeout(0)
end
local YIELD=coroutine.yield
local byte,char=string.byte,string.char
local band,bor,bxor=bit.band,bit.bor,bit.bxor
local shl,shr=bit.lshift,bit.rshift
local mask_key={1,14,5,14}
local mask_str=char(unpack(mask_key))
local function _send(op,message)
--Message type
SOCK:send(char(bor(op,0x80)))
if message then
--Length
local length=#message
if length>65535 then
SOCK:send(char(bor(127,0x80),0,0,0,0,band(shr(length,24),0xff),band(shr(length,16),0xff),band(shr(length,8),0xff),band(length,0xff)))
elseif length>125 then
SOCK:send(char(bor(126,0x80),band(shr(length,8),0xff),band(length,0xff)))
else
SOCK:send(char(bor(length,0x80)))
end
local msgbyte={byte(message,1,length)}
for i=1,length do
msgbyte[i]=bxor(msgbyte[i],mask_key[(i-1)%4+1])
end
return SOCK:send(mask_str..char(unpack(msgbyte)))
else
SOCK:send('\128'..mask_str)
return 0
end
end
local sendThread=coroutine.wrap(function()
while true do
while CHN_getCount(sendCHN)>=2 do
_send(CHN_pop(sendCHN),CHN_pop(sendCHN))
end
YIELD()
end
end)
local function _receive(sock,len)
local buffer=""
while true do
local r,e,p=sock:receive(len)
if r then
buffer=buffer..r
len=len-#r
elseif p then
buffer=buffer..p
len=len-#p
elseif e then
return nil,e
end
if len==0 then
return buffer
end
YIELD()
end
end
local readThread=coroutine.wrap(function()
local res,err
local op,fin
local lBuffer=""--Long multi-pack buffer
while true do
--Byte 0-1
res,err=_receive(SOCK,2)
assert(res,err)
op=band(byte(res,1),0x0f)
fin=band(byte(res,1),0x80)==0x80
--Calculating data length
local length=band(byte(res,2),0x7f)
if length==126 then
res,err=_receive(SOCK,2)
assert(res,err)
length=shl(byte(res,1),8)+byte(res,2)
elseif length==127 then
local lenData
lenData,err=_receive(SOCK,8)
assert(res,err)
local _,_,_,_,_5,_6,_7,_8=byte(lenData,1,8)
length=shl(_5,24)+shl(_6,16)+shl(_7,8)+_8
end
res,err=_receive(SOCK,length)
assert(res,err)
--React
if op==8 then--8=close
CHN_push(readCHN,8)--close
if type(res)=='string'then
CHN_push(readCHN,res:sub(3))--[Warning] 2 bytes close code at start so :sub(3)
else
CHN_push(readCHN,"WS closed")
end
return
elseif op==0 then--0=continue
lBuffer=lBuffer..res
if fin then
CHN_push(readCHN,lBuffer)
lBuffer=""
end
else
CHN_push(readCHN,op)
if fin then
CHN_push(readCHN,res)
lBuffer=""
else
lBuffer=res
end
end
YIELD()
end
end)
local success,err
while true do--Running
CHN_demand(triggerCHN)
success,err=pcall(sendThread)
if not success or err then break end
success,err=pcall(readThread)
if not success or err then break end
end
SOCK:close()
CHN_push(readCHN,8)--close
CHN_push(readCHN,err or"Disconnected")
error()

View File

@@ -0,0 +1,19 @@
local love=love
local max,min=math.max,math.min
local trigDist=0
return function(y,key1,key2)
if y>0 then
trigDist=max(trigDist,0)+y^1.2
elseif y<0 then
if trigDist>0 then trigDist=0 end
trigDist=min(trigDist,0)-(-y)^1.2
end
while trigDist>=1 do
love.keypressed(key1 or'up')
trigDist=trigDist-1
end
while trigDist<=-1 do
love.keypressed(key2 or'down')
trigDist=trigDist+1
end
end

File diff suppressed because it is too large Load Diff

View File

@@ -1,39 +1,34 @@
VERSION_CODE=1204
VERSION_NAME="Alpha V0.12.4"
love.setDeprecationOutput(false)
function love.conf(t)
t.identity="Techmino"--Saving folder
t.version="11.1"
t.gammacorrect=false
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
t.identity='Techmino'--Saving folder
t.version="11.1"
t.gammacorrect=false
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 "..VERSION_NAME
W.icon="media/image/icon.png"
W.width,W.height=1280,720
W.minwidth,W.minheight=640,360
W.borderless=false
W.resizable=true
W.fullscreentype="desktop"--"exclusive"
W.fullscreen=false
W.vsync=0--Do not limit FPS
W.msaa=false--Num of samples to use with 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
local W=t.window
W.title="Techmino "..require"version".string
W.width,W.height=1280,720
W.minwidth,W.minheight=640,360
W.borderless=false
W.resizable=true
W.fullscreen=false
W.vsync=0--Unlimited FPS
W.msaa=0--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
local M=t.modules
M.window,M.system,M.event=true,true,true
M.audio,M.sound=true,true
M.math,M.data=true,true
M.timer,M.graphics,M.font,M.image=true,true,true,true
M.mouse,M.touch,M.keyboard,M.joystick=true,true,true,true
M.physics,M.thread,M.video=false,false,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
M.video,M.audio,M.sound=true,true,true
M.graphics,M.font,M.image=true,true,true
M.mouse,M.touch,M.keyboard,M.joystick=true,true,true,true
M.physics=false
end

View File

@@ -1,62 +0,0 @@
游戏方法:
系统会提供的一个个四连骨牌("方块",总共7种),玩家需要控制(左右移动和旋转90,180,270度),每填满场地的一行就会将其消除,根据消除方式会给对手攻击(如果有对手的话)
活到最后或者完成目标即胜利.
旋转系统:
使用Techmino专属旋转系统,细节懒得写(
spin判定:
满足三角判定+2分
满足不可移动判定+2分
--满足以上之一就算是spin
满足非第二个test+1分
--如果分数只有2,方块是SZJLT之一,并且没有把当前方块整个消除那么就是mini
攻击系统:
普通消除:
消<4行打出[消行数-0.5]攻击
特殊消除:
如果是spin,打出[2*消行数]攻击,
B2B攻击+[1/1/2/4/8(spin1~5)]
B3B攻击在B2B基础上+消行数*0.5,+1额外抵挡
mini减至25%
不是spin但是单次消>=4行,打出[消行数]攻击,
B2B攻击+1
B3B攻击+50%,+1额外抵挡
特殊消除会增加B2B点数,让之后的特殊消除获得B2B(B3B)增益(详细说明见下文)
半全消("下方有剩余方块"的全消,如果是I消1行则必须不剩余玩家放置的方块):伤害+2,额外抵挡+2
全消:将上述伤害之和减半,再+8~20(本局内递增2),+2额外抵挡(注:本局消行数>4时会将B2B点数拉满)
连击:每次连击给予上述攻击[连击数*25%(如果只消一行就是15%)]的加成,12combo达到上限,连击>=3次时再额外加1攻击
根据上述规则计算后,向下取整,攻击打出
分数系统:
操作越牛逼得分越高嗷(
攻击延迟:
消2/3的攻击生效最快,消四其次,spin攻击生效较慢,高连击生效最慢
B2B或者B3B增加攻击力的同时也会减缓一点生效速度,mini大幅减缓生效速度
抵消逻辑:
发动攻击时,若缓冲条有攻击则先用额外抵挡再用攻击力1:1抵消最先受到的攻击
没有用上的额外抵挡会被丢弃,最后剩下的攻击力会发送给对手
back to back(B2B)点数说明:
B2B点数的范围在0~1200,在点数>=40时进行特殊消除为B2B,>1000时特殊消除为B3B
普通消除:-250
spin1~5:+[50/100/180/1000/1200](mini变为原来25%)
消四/五:+[100/200]
空spin:+20,此法得到的点数不能超过1000
当点数在1000以上时空放一块-40(不低于1000)
混战模式说明:
许多玩家同时进行一局游戏(对手都是AI,不是真人).随着玩家数量的减少,方块下落/垃圾生效速度/垃圾升起速度都会增加.淘汰其它玩家后可以获得一个徽章和该玩家持有的徽章,增强自己的攻击力.
玩家可选四个攻击模式:
1.随机:每次攻击后10%随机挑选一个玩家锁定
2.最多徽章:攻击后或者锁定玩家死亡时锁定徽章最多的玩家
3.最高:攻击后或者锁定玩家死亡时锁定场地最高的玩家(每秒刷新)
4.反击:攻击所有锁定自己的玩家(攻击AOE),若未被任何人锁定则攻击随机玩家(不锁定)
坚持到最后的玩家就是胜利者.
自定义模式说明:
玩家可以自由调整大多数参数(不包括上述各种游戏模式的特殊效果),也可以画一个场地去消除或者是作为提示模板来进行拼图模式.
在拼图模式下,按功能键切换是否展示提示.其中打"X"的格子不允许有方块,空的格子可以是任何状态,普通的七种彩色方块必须颜色对应,垃圾行方块的为止只要有方块就可以,但是不能是空气,玩家拼出自己画的图后就会判定胜利.

View File

@@ -1,64 +0,0 @@
Gameplay:
The system will provide you with tetrominoes (4-block pieces), with a total of 7 types, and the player needs to control them (move left and right, rotate 90, 180 or 270 degrees), and each row filled with the field will be cleared, and depending on the line clear type, an attack will be sent (if there is an opponent)
Play until the end or achieve the level's goal to win.
Rotation system:
Uses Techmino's custom rotation system. Too lazy to write the details
Spin detection:
Satisfies "3 corner" rule +2 points
Satisfies "immobile" rule +2 points
- As long as one of the above is true, it is a Spin
If the rotation was not using the second check in the kick table, +1 point
- The Spin is a Mini if it only has 2 points; the piece is one of S, Z, J, L, T; AND the line clear did not clear the entire piece.
Attack system:
Normal line clears (1 to 3 lines):
Sends (lines cleared -0.5) attack
Special line clears:
Spin sends (lines cleared x2) attack,
- B2B sends extra 1/1/2/4/8 (for Spin Single/Double/Triple/Techrash/Techrash+ respectively)
- B2B2B sends (lines cleared x0.5), and +1 extra blocking
- Minis reduces the attack to 25% (x0.25 multiplier)
Non-Spin Techrash/Techrash+ sends (lines cleared) attack,
- B2B sends 1 additional line
- B2B2B will have an attack boost of 50% and +1 extra blocking
Special line clears will the increase B2B gauge, making later special line clears have either a B2B or B2B2B bonus (see below)
Half Perfect Clear (a Perfect Clear "with blocks left below". If it's an I clearing 1 line, then the remaining blocks must not be player-placed): Attack +2, Extra Blocking +2
Perfect Clear (also known as All Clear): half the sum of the damage above, plus additional 8 to 20 attack (increasing by 2 in a single round for each PC) and +2 extra blocking. (note: if lines cleared in this round >4, then B2B gauge will be filled)
Combos: All damage above will be given a (combo x25%) bonus, or (combo x15%) if the line clear is a Single, capped at 12 combo. +1 more attack for 3 Combo or more.
After calculating all above, the damage value will be rounded down then sent
Score system:
The better you play, the higher the score.
Attack delay:
Attacks from Doubles/Triples take effect the fastest, followed by Techrash, Spins, which send slow attacks, and high combos are the slowest
For B2B or B2B2B, while they increase lines sent, they also increase the attack delay. Minis will greatly increase the delay.
Countering:
When you send attacks, if there is garbage in queue, extra blocking will be used first, then attack, countering the earliest attack at a 1:1 ratio.
Any extra blocking you didn't use will be discarded, and finally the remaining attack power will be sent to your opponent.
Back to Back (B2B) gauge:
The B2B gauge ranges from 0 to 1,200. Special line clears are B2B if the gauge is >=40, B2B2B if >1,000.
A regular line clear -250
Spin Single/Double/Triple/Techrash/Techrash+ +50/100/180/1000/1200 (x25% if Mini)
Techrash/Techrash+ +100/200
Spin (0 lines) +20. Do note that the B2B gauge cannot exceed 1000 using this method.
When gauge is above 1,000, a drop without clearing lines decreases it by 40, but cannot drop below 1,000
Battle Royale modes:
Many players play a game at the same time (against AI bots, not real players). As players get eliminated, blocks fall faster, and garbage take effect faster, as well as rise faster. Eliminate other players to gain a badge and the player's badge to increase your attack power.
Players can choose between four attack modes:
1. Random: Every time you attack, 10% chance to lock onto a random player.
2. Badges: After you attack or when your target dies, lock onto the player with the most badges.
3. KOs: After you attack or when your target dies, lock onto the player with the highest field. (This refreshes every second)
4. Attackers: attack all players locking onto yourself. Your attack will be sent to all of them. If you are not targetted, you attack a random player (not locking).
When all opponents have been eliminated, the last player in the match is the winner.
Custom mode:
You can freely adjust most parameters (not including special effects of other game modes), and you can also draw a field to clear or make a template to build.
In build (puzzle) mode, you can toggle template display with Function key. Cells with a X cannot have blocks; empty cells can be in any state; regular colored cells have to be made of the corresponding block; garbage-colored cells can be any block but not air. Once you make the shape, you will win.

View File

@@ -1,144 +0,0 @@
一个正确的模式文件应是一个合法lua程序其必须立刻返回一个table里面的内容包括
color:模式的颜色,用于点击地图图标后显示的提示文本
env:
必选
模式环境变量,决定了关卡的各项属性
table值:
drop:下落延迟(帧支持自然数和2的整数次幂)
lock:锁定延迟(帧)
wait:出块延迟(帧)
fall:下落延迟(帧)
bone:是否开启骨块模式
nextCount:显示next个数
nextStartPos:next从第几个开始显示
holdCount:hold个数,
infHold:是否能无限hold
ospin=是否能O-spin
RS:旋转系统名
das:DAS
arr:ARR
sddas:软降DAS
sdarr:软降ARR
mindas:允许的最小DAS
minarr:允许的最小ARR
minsdarr:允许的最小软降ARR
ihs:提前Hold
irs:提前旋转
ims:提前移动
maxNext:最大next数
skin:方块颜色,包含25个整数(1~16)的table
face:方块朝向,包含25个整数(0~3)的table
block:是否显示方块
ghost:影子透明度(0~1)
center:旋转中心透明度(0~1)
smooth:是否平滑下落
grid:是否显示网格
bagLine:是否显示包分界线
lockFX:特效等级(0,5)
dropFX:特效等级(0,5)
moveFX:特效等级(0,5)
clearFX:特效等级(0,5)
splashFX:特效等级(0,5)
shakeFX:特效等级(0,5)
atkFX:特效等级(0,5)
text:是否显示消行文本
score:是否显示落块分数
warn:是否开启死亡预警
highCam:是否开启超屏视野
nextPos:是否开启生成预览
sequence:序列模式,可以使用默认的几个函数用字符串表示,也可以自己写
freshMethod=放一块后对next序列的刷新函数不使用默认sequence的话就要自己写
bag:一包的方块(本质是基准序列,不一定是包)
mission:包含任务的table,说明暂时略
life:生命数,
pushSpeed:上涨速度
noTele:是否禁止10个高级按键,
visible:方块可见性,填写固定的几个字符串
freshLimit:锁延刷新次数限制
easyFresh:是否使用简单锁延刷新规则
Fkey:按下功能键后执行的函数
keyCancel:包含禁止使用的按键的id们的table
fineKill:是否开启非极简即死
b2bKill:是否开启断b2b即死
missionKill:是否开启强制任务
target:目标行数如果dropPiece使用了默认的几个通用通关函数或者自己有一个目标数字就要写
dropPiece:放一块后要执行的函数,输入玩家对象
bg:背景,只能填写默认背景的名字
bgm:背景音乐,只能填写默认音乐库的音乐名
noMod:是否禁用玩家开启mod
load:
必选
模式初始化函数,一般创建一个玩家即可
无输入和输出
mesDisp:
必选
模式显示信息,是一个绘图函数,坐标系原点是玩家对象最左上角
输入玩家对象
无输出
score:
可选(不填就没有分数保存和计算)
一局打完后要存储的数据
输入玩家对象
输出游戏结束瞬间返回一个包含直接决定该模式成绩的数据table会被强制加上date标签
scoreDisp:
可选(当模式不出现在地图上的时候)
是把score()存起来的table转换为字符串显示出来的函数
输入一个成绩table
输出一个字符串
comp:
可选当没有score函数的时候
是成绩table之间对比并排序的规则
输入两个成绩table
输出[第一个是不是排在第二个前面]的布尔值(可以类比"小于"运算)
getRank:
可选,模式评级函数
是用于评价玩家表现的函数
输入玩家对象
返回0~50表示除了记录到排行榜外什么都不做1/2/3/4/5表示D/C/B/A/S级能解锁连接的模式还会让模式图标在地图上显示不同的颜色
以下是40行的模式文件内容:
//sprint_40.lua
return{--返回一个table你也可以在之前定义一些常量或者函数什么的
color=COLOR.green,--颜色
env={--模式环境变量
drop=60,lock=60,
target=40,dropPiece=PLY.check_lineReach,
bg="bg2",bgm="race",
},
load=function()--生成玩家
PLY.newPlayer(1,340,15)
end,
mesDisp=function(P)--40行模式需要显示的信息
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,69,335)--把计算出来的剩余行数r显示出来
PLY.draw.drawTargetLine(P,r)--使用自带的境界高度线绘制函数
end,
score=function(P)return{P.stat.frame/60,P.stat.piece}end,--游戏结束时需要保存的本局关键信息
scoreDisp=function(D)return toTime(D[1]).." "..D[2].." Pieces"end,--把score返回的数据显示出来的方法
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,--按照时间排序,时间一样就看块数
getRank=function(P)--计算评级
if P.stat.row<40 then return end--你总得打完40行对吧否则直接return空掉成绩都不记录
local T=P.stat.frame/60
return
T<=26 and 5 or--时间小于等于26秒S级要求至于为什么是26秒不解释
T<=32.6 and 4 or--A级要求
T<=52.6 and 3 or--B级要求
T<=92.9 and 2 or--C级要求
T<=183 and 1 or--D级要求是解锁别的模式的最低标准
0--打完了40行那成绩就给你记一下
end,
}

View File

@@ -1,47 +0,0 @@
以下是Techmino使用/将要使用/未来也许会使用的语音文件, 每一个都可以录任意多条
有多个文件的语音在播放时会随机挑选一个播放, 所以组合性的语音大概率不能随意发挥, 不然和其他组合起来可能就会出现奇怪的现象
例如多个mini语音文件名: mini_1.ogg, mini_2.ogg, ......
如果只有一个, "_1"可以省略, 但是多个文件的数字不能跳跃
要投稿语音包的话如果没有经过后期处理, 建议使用wav格式;
如果打算自己导入游戏的话需要降噪+裁剪+调整音量后再转为ogg格式 (不支持别的, 因为ogg音质好体积小)
目前游戏内正在使用, 必须录制的音频文件名们:
single, double, triple, techrash
以上直接念就可以,用于普通直接消行
mini, b2b, b3b
以上直接念就可以,用于组合进spin消除
zspin, sspin, lspin, jspin, tspin, ospin, ispin
以上的每一个都要衍生出数条语音,例如zpin的是这五条:
z-spin (用于不消行)
z-spin single
z-spin double
z-spin triple
z-spin techrash
(z-spin pentacrash)
(z-spin hexacrash)
对于 S L J T O I 每一个都是这样, 五种语音, 加括号的是消5和消6, 一般不用所以可以不录
对于P, Q, F, E, U, V, W, X, R, Y, N, H
这些方块也可以有上面那些语音,但由于仅在五连块使用还会显著增加语音包体积, 所以不录也可以
perfect_clear, half_clear
这俩可以直接念也可以略做修改
win, lose, bye
这几个可以自由发挥
test, happy, doubt, sad, egg
第一个是拉语音条预览音量播放的, 剩下的是彩蛋音效(不录也行, 反正一般不会触发)
welcome_voc
进入游戏播放的欢迎语音(类似osu)
目前没有用到但是将要加入的:
split
未来可能加入的:
暂无

BIN
font.ttf

Binary file not shown.

51
legals.md Normal file
View File

@@ -0,0 +1,51 @@
TECHMINO © 2019-2021 26F Studio. Some rights reserved.
TECHMINO and "26F Studio" are trademarks of 26F Studio. The TECHMINO game and source code are under a GNU Lesser General Public License Version 3.
"Tetris" is the registered trademark of The Tetris Holding, LLC, licensed to The Tetris Company, Inc. TECHMINO is not a fan game of Tetris. TECHMINO and 26F Studio are not affiliated with Tetris Holding, LLC or The Tetris Company, Inc. in any way.
Powered by LÖVE, © 2006-2021 LÖVE Development Team.
Lua is free software distributed under the terms of the MIT license. Copyright © 1994-2021 by Lua.org, PUC-Rio.
SIMPLE LOVE LIGHTS is under a MIT License. Created by Dylan Hunn.
json.lua is copyrighted by rxi. © 2021 rxi.
IBM Plex is copyrighted by the International Business Machines Corporation. IBM and IBM Plex are trademarks of IBM Corp, registered in many jurisdictions worldwide. IBM Plex is licensed under the SIL Open Font License, Version 1.1.
Source Han Sans is copyrighted by Adobe Inc. Source Han Sans and Adobe are registered trademarks of Adobe Inc. in United States and other countries or regions. Source Han Sans is licensed under the SIL Open Font License, Version 1.1.
JetBrains Mono is copyrighted by the JetBrains Mono Project authors. JetBrains Mono is a trademark of JetBrains s.r.o. JetBrains Mono is licensed under the SIL Open Font License, Version 1.1.
"PlayStation", "PS", "PlayStation Family Mark", "PS logo", "DualSense" and "Play Has No Limits" are registered trademarks or trademarks of Sony Interactive Entertainment Inc. "SONY" is a registered trademark of Sony Corporation. © 2021 Sony Interactive Entertainment LLC.
"Windows", the Windows logo, "Xbox", Xbox logo, and "Microsoft" are registered trademarks of Microsoft Corporation in the United States of America and other countries or regions.
The Apple logo, "Apple Inc.," iOS, iPadOS, macOS, iPhone, and Mac are registered trademarks of Apple Inc. in the United States of America and other countries or regions.
"EA" and "Electronic Arts" are registered trademarks of Electronic Arts Inc. © 2021 Electronic Arts Inc.
SEGA and the SEGA logo are registered trademarks of Sega Corporation. © 2021 Sega Corporation.
Oculus Quest is a registered trademark of Facebook Technologies, LLC. © Meta Platforms, Inc.
"Nintendo" is a registered trademarks of Nintendo Co., Ltd. © 2021 Nintendo Co., Ltd.
N3TWORK is a registered trademark of N3TWORK Inc. © 2021 N3TWORK Inc.
GoldWave is a registered trademark of GoldWave, Inc.
Linux is a registered trademark of Linus Torvalds.
Touhou Project © Team Shanghai Alice 2002-2021.
All other trademarks, logos, and copyrights are the properties of their respective owners.

165
license.txt Normal file
View File

@@ -0,0 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

808
main.lua
View File

@@ -1,242 +1,644 @@
--[[
______ __ _
/_ __/___ _____ / /_ ____ ___ (_)____ ____
/ / / _ \ / ___// __ \ / __ `__ \ / // __ \ / __ \
/ / / __// /__ / / / // / / / / // // / / // /_/ /
/_/ \___/ \___//_/ /_//_/ /_/ /_//_//_/ /_/ \____/
Techmino is my first "huge project"
optimization is welcomed if you also love tetromino game
# ______ __ _ #
# /_ __/___ _____ / /_ ____ ___ (_)____ ____ #
# / / / _ \ / ___// __ \ / __ `__ \ / // __ \ / __ \ #
# / / / __// /__ / / / // / / / / // // / / // /_/ / #
# /_/ \___/ \___//_/ /_//_/ /_/ /_//_//_/ /_/ \____/ #
Techmino is my first "huge project"
optimization is welcomed if you also love tetromino stacking game
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";
]]--
local fs=love.filesystem
--?
NONE={}function NULL()end
DBP=print--Use this in permanent code
SYSTEM=love.system.getOS()
MOBILE=SYSTEM=="Android"or SYSTEM=="iOS"
--Var leak check
-- setmetatable(_G,{__newindex=function(self,k,v)print('>>'..k)print(debug.traceback():match("\n.-\n\t(.-): "))rawset(self,k,v)end})
--System Global Vars Declaration
local fs=love.filesystem
VERSION=require"version"
TIME=love.timer.getTime
YIELD=coroutine.yield
SYSTEM=love.system.getOS()if SYSTEM=='OS X'then SYSTEM='macOS'end
FNNS=SYSTEM:find'\79\83'--What does FNSF stand for? IDK so don't ask me lol
MOBILE=SYSTEM=='Android'or SYSTEM=='iOS'
SAVEDIR=fs.getSaveDirectory()
--Global Vars & Settings
MARKING=true
LOADED=false
NOGAME=false
LOGIN=false
EDITING=""
WSCONN=nil
SFXPACKS={'chiptune'}
VOCPACKS={'miya',--[['mono',]]'xiaoya','miku'}
FIRSTLAUNCH=false
DAILYLAUNCH=false
--System setting
math.randomseed(os.time()*626)
love.setDeprecationOutput(false)
love.keyboard.setKeyRepeat(true)
love.keyboard.setTextInput(false)
love.mouse.setVisible(false)
if MOBILE then
local w,h,f=love.window.getMode()
f.resizable=false
love.window.setMode(w,h,f)
end
local _LOADTIMELIST_={}
local _LOADTIME_=TIME()
--Load modules
require"Zframework"
require"parts/list"
require"parts/globalTables"
require"parts/gametoolfunc"
Z=require'Zframework'
FONT.load{
norm='parts/fonts/proportional.ttf',
mono='parts/fonts/monospaced.ttf',
}
FONT.setDefault('norm')
FONT.setFallback('norm')
SCR.setSize(1280,720)--Initialize Screen size
FIELD[1]=newBoard()--Initialize field[1]
BGM.setMaxSources(5)
BGM.setChange(function(name)MES.new('music',text.nowPlaying..name,5)end)
VOC.setDiversion(.62)
BLOCKS= require"parts/mino"
AIBUILDER= require"parts/AITemplate"
FREEROW= require"parts/freeRow"
WIDGET.setOnChange(function()
if SCN.cur~='custom_field'then
local colorList=THEME.getThemeColor()
if not colorList then return end
local rnd=math.random
for _,W in next,SCN.scenes[SCN.cur].widgetList do
if W.color then
W.color=colorList[rnd(#colorList)]
end
end
end
end)
TEXTURE=require"parts/texture"
SKIN= require"parts/skin"
PLY= require"parts/player"
AIFUNC= require"parts/ai"
MODES= require"parts/modes"
TICK= require"parts/tick"
table.insert(_LOADTIMELIST_,("Load Zframework: %.3fs"):format(TIME()-_LOADTIME_))
--Initialize sound libs
SFX.set{
--Stereo sfxs(cannot set position)
"welcome_sfx",
"click","enter",
"finesseError","finesseError_long",
--Create shortcuts
setFont=FONT.set
getFont=FONT.get
mStr=GC.mStr
mText=GC.simpX
mDraw=GC.draw
Snd=SFX.playSample
string.repD=STRING.repD
string.sArg=STRING.sArg
string.split=STRING.split
--Mono sfxs
"virtualKey",
"button","swipe",
"ready","start","win","fail","collect",
"spawn_1","spawn_2","spawn_3","spawn_4","spawn_5","spawn_6","spawn_7",
"move","rotate","rotatekick","hold",
"prerotate","prehold",
"lock","drop","fall",
"reach",
"ren_1","ren_2","ren_3","ren_4","ren_5","ren_6","ren_7","ren_8","ren_9","ren_10","ren_11","ren_mega",
"clear_1","clear_2","clear_3","clear_4",
"spin_0","spin_1","spin_2","spin_3",
"emit","blip_1","blip_2",
"clear",
"error",
}
BGM.set{
"blank",--menu
"race",--sprint, solo
"infinite",--infinite norm/dig, ultra, zen, tech-finesse
"push",--marathon, round, tsd, blind-5/6
"way",--dig sprint
"reason",--drought, blind-1/2/3/4
--Delete all naked files (from too old version)
FILE.clear('')
"secret8th",--master-1, survivor-2
"secret7th",--master-2, survivor-3
"waterfall",--sprint Penta/MPH
"new era",--bigbang, survivor-1, tech-normal
"oxygen",--c4w/pc train
"truth",--pc challenge
"sugar fairy",--classic2
--Create directories
for _,v in next,{'conf','record','replay','cache','lib'}do
local info=fs.getInfo(v)
if not info then
fs.createDirectory(v)
elseif info.type~='directory'then
fs.remove(v)
fs.createDirectory(v)
end
end
"distortion",--master-3
"far",--GM
"shining terminal",--attacker
"storm",--defender, survivor-4/5
"down",--dig, tech-hard/lunatic
"rockblock",--classic, 49/99
"cruelty","final","8-bit happiness","end","how feeling",--49/99
}
VOC.set{
"zspin","sspin","lspin","jspin","tspin","ospin","ispin",
"single","double","triple","techrash",
"mini","b2b","b3b",
"perfect_clear","half_clear",
"win","lose","bye",
"test","happy","doubt","sad","egg",
"welcome_voc",
}
CHAR=require'parts.char'
require'parts.gameTables'
require'parts.gameFuncs'
--Load shader files from SOURCE ONLY
SHADER={}
for _,v in next,love.filesystem.getDirectoryItems("parts/shaders")do
if love.filesystem.getRealDirectory("parts/shaders/"..v)~=SAVEDIR then
local name=v:sub(1,-6)
SHADER[name]=love.graphics.newShader("parts/shaders/"..name..".glsl")
else
LOG.print("Dangerous file : %SAVE%/parts/shaders/"..v)
end
for _,v in next,fs.getDirectoryItems('parts/shaders')do
if isSafeFile('parts/shaders/'..v)then
local name=v:sub(1,-6)
SHADER[name]=love.graphics.newShader('parts/shaders/'..name..'.glsl')
end
end
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'
MODETREE= require'parts.modeTree'
setmetatable(TEXTURE,{__index=function(self,k)
MES.new('warn',"No texture called: "..k)
self[k]=PAPER
return self[k]
end})
table.insert(_LOADTIMELIST_,("Load Parts: %.3fs"):format(TIME()-_LOADTIME_))
--Init Zframework
do--Z.setCursor
local normImg=GC.DO{16,16,
{'fCirc',8,8,4},
{'setCL',1,1,1,.7},
{'fCirc',8,8,6},
}
local holdImg=GC.DO{16,16,
{'setLW',2},
{'dCirc',8,8,7},
{'fCirc',8,8,3},
}
local min,int,abs=math.min,math.floor,math.abs
local gc_setColor,gc_draw=love.graphics.setColor,love.graphics.draw
local ms=love.mouse
Z.setCursor(function(time,x,y)
if not SETTING.sysCursor then
local R=int((time+1)/2)%7+1
_=BLOCK_COLORS[SETTING.skin[R]]
gc_setColor(_[1],_[2],_[3],min(abs(1-time%2),.3))
_=DSCP[R][0]
gc_draw(TEXTURE.miniBlock[R],x,y,time%3.14159265359*4,16,16,_[2]+.5,#BLOCKS[R][0]-_[1]-.5)
gc_setColor(1,1,1)
gc_draw(ms.isDown(1)and holdImg or normImg,x,y,nil,nil,nil,8,8)
end
end)
end
Z.setOnFnKeys({
function()MES.new('check',PROFILE.switch()and"profile start!"or"profile report copied!")end,
function()MES.new('info',("System:%s[%s]\nluaVer:%s\njitVer:%s\njitVerNum:%s"):format(SYSTEM,jit.arch,_VERSION,jit.version,jit.version_num))end,
function()MES.new('error',"挂了")end,
function()
if GAME.playing and not GAME.net then
for _=1,8 do
if #PLY_ALIVE>1 then
local P=PLY_ALIVE[math.random(2,#PLY_ALIVE)]
P.lastRecv=PLAYERS[1]
P:lose()
end
end
end
end,
function()print(WIDGET.getSelected()or"no widget selected")end,
function()for k,v in next,_G do print(k,v)end end,
function()if love['_openConsole']then love['_openConsole']()end end,
})
Z.setOnResize(function(w,_)
SHADER.warning:send('w',w*SCR.dpi)
end)
do--Z.setOnFocus
local function task_autoSoundOff()
while true do
coroutine.yield()
local v=love.audio.getVolume()
love.audio.setVolume(math.max(v-.05,0))
if v==0 then return end
end
end
local function task_autoSoundOn()
while true do
coroutine.yield()
local v=love.audio.getVolume()
if v<SETTING.mainVol then
love.audio.setVolume(math.min(v+.05,SETTING.mainVol,1))
else
return
end
end
end
Z.setOnFocus(function(f)
if f then
love.timer.step()
if SETTING.autoMute then
TASK.removeTask_code(task_autoSoundOff)
TASK.new(task_autoSoundOn)
end
else
if SCN.cur=='game'and SETTING.autoPause then
pauseGame()
end
if SETTING.autoMute then
TASK.removeTask_code(task_autoSoundOn)
TASK.new(task_autoSoundOff)
end
end
end)
end
Z.setOnQuit(destroyPlayers)
--Load settings and statistics
TABLE.cover (loadFile('conf/user','-canSkip')or{},USER)
TABLE.cover (loadFile('conf/unlock','-canSkip')or{},RANKS)
TABLE.update(loadFile('conf/settings','-canSkip')or{},SETTING)
TABLE.coverR(loadFile('conf/data','-canSkip')or{},STAT)
TABLE.cover (loadFile('conf/key','-canSkip')or{},KEY_MAP)
TABLE.cover (loadFile('conf/virtualkey','-json -canSkip')or{},VK_ORG)
--Initialize fields, sequence, missions, gameEnv for cutsom game
local fieldData=loadFile('conf/customBoards','-string -canSkip')
if fieldData then
fieldData=STRING.split(fieldData,"!")
for i=1,#fieldData do
DATA.pasteBoard(fieldData[i],i)
end
else
FIELD[1]=DATA.newBoard()
end
local sequenceData=loadFile('conf/customSequence','-string -canSkip')
if sequenceData then
DATA.pasteSequence(sequenceData)
end
local missionData=loadFile('conf/customMissions','-string -canSkip')
if missionData then
DATA.pasteMission(missionData)
end
local customData=loadFile('conf/customEnv','-canSkip')
if customData and customData['version']==VERSION.code then
TABLE.complete(customData,CUSTOMENV)
end
TABLE.complete(require"parts.customEnv0",CUSTOMENV)
--Initialize image libs
IMG.init{
lock='media/image/mess/lock.png',
dialCircle='media/image/mess/dialCircle.png',
dialNeedle='media/image/mess/dialNeedle.png',
lifeIcon='media/image/mess/life.png',
badgeIcon='media/image/mess/badge.png',
ctrlSpeedLimit='media/image/mess/ctrlSpeedLimit.png',
speedLimit='media/image/mess/speedLimit.png',--Not used, for future C2-mode
pay1='media/image/mess/pay1.png',
pay2='media/image/mess/pay2.png',
drought='media/image/mess/drought.png',
miyaCH1='media/image/characters/miya1.png',
miyaCH2='media/image/characters/miya2.png',
miyaCH3='media/image/characters/miya3.png',
miyaCH4='media/image/characters/miya4.png',
miyaHeart='media/image/characters/miya_heart.png',
miyaGlow='media/image/characters/miya_glow.png',
monoCH='media/image/characters/mono.png',
xiaoyaCH='media/image/characters/xiaoya.png',
xiaoyaOmino='media/image/characters/xiaoya_Omino.png',
mikuCH='media/image/characters/miku.png',
electric='media/image/characters/electric.png',
hbm='media/image/characters/hbm.png',
lanterns={
'media/image/lanterns/1.png',
'media/image/lanterns/2.png',
'media/image/lanterns/3.png',
'media/image/lanterns/4.png',
'media/image/lanterns/5.png',
'media/image/lanterns/6.png',
},
}
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="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="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
local L={}
for _,v in next,fs.getDirectoryItems('media/effect/chiptune/')do
if isSafeFile('media/effect/chiptune/'..v,"Dangerous file : %SAVE%/media/effect/chiptune/"..v)then
table.insert(L,v:sub(1,-5))
end
end
return L
end)())
BGM.load((function()
local L={}
for _,v in next,fs.getDirectoryItems('media/music')do
if isSafeFile('media/music/'..v,"Dangerous file : %SAVE%/media/music/"..v)then
L[v:sub(1,-5)]='media/music/'..v
end
end
return L
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',
'mini','b2b','b3b',
'perfect_clear','half_clear',
'win','lose','bye',
'test','happy','doubt',
'welcome',
}
--Initialize language lib
LANG.init('zh',
{
zh=require'parts.language.lang_zh',
zh_trad=require'parts.language.lang_zh_trad',
zh_full=require'parts.language.lang_zh_full',
en=require'parts.language.lang_en',
fr=require'parts.language.lang_fr',
es=require'parts.language.lang_es',
pt=require'parts.language.lang_pt',
id=require'parts.language.lang_id',
zh_grass=require'parts.language.lang_zh_grass',
zh_yygq=require'parts.language.lang_yygq',
symbol=require'parts.language.lang_symbol',
--1. Add language file to LANG folder;
--2. Require it;
--3. Add a button in parts/scenes/lang.lua;
},
{
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]=CHAR.zChan.thinking
return self[k]
end})
end
end)()
)
table.insert(_LOADTIMELIST_,("Initialize Parts: %.3fs"):format(TIME()-_LOADTIME_))
--Load background files from SOURCE ONLY
for _,v in next,love.filesystem.getDirectoryItems("parts/backgrounds")do
if love.filesystem.getRealDirectory("parts/backgrounds/"..v)~=SAVEDIR then
local name=v:sub(1,-5)
BG.add(name,require("parts/backgrounds/"..name))
else
LOG.print("Dangerous file : %SAVE%/parts/backgrounds/"..v)
end
for _,v in next,fs.getDirectoryItems('parts/backgrounds')do
if isSafeFile('parts/backgrounds/'..v)and v:sub(-3)=='lua'then
local name=v:sub(1,-5)
BG.add(name,require('parts.backgrounds.'..name))
end
end
BG.remList('none')BG.remList('gray')BG.remList('custom')
--Load scene files from SOURCE ONLY
for _,v in next,fs.getDirectoryItems("parts/scenes")do
if fs.getRealDirectory("parts/scenes/"..v)~=SAVEDIR then
local sceneName=v:sub(1,-5)
local scene=require("parts/scenes/"..sceneName)
SCN.add(sceneName,scene)
if scene.widgetList then WIDGET.init(sceneName,scene.widgetList)end
else
LOG.print("Dangerous file : %SAVE%/parts/scenes/"..v)
end
for _,v in next,fs.getDirectoryItems('parts/scenes')do
if isSafeFile('parts/scenes/'..v)then
local sceneName=v:sub(1,-5)
SCN.add(sceneName,require('parts.scenes.'..sceneName))
LANG.addScene(sceneName)
end
end
--Load files
if fs.getInfo("settings.dat")then
addToTable(FILE.load("settings"),SETTING)
else
if MOBILE then
SETTING.VKSwitch=true
SETTING.swap=false
SETTING.vib=2
SETTING.powerInfo=true
SETTING.fullscreen=true
love.window.setFullscreen(true)
love.resize(love.graphics.getWidth(),love.graphics.getHeight())
end
end
if SETTING.fullscreen then love.window.setFullscreen(true)end
LANG.set(SETTING.lang)
if fs.getInfo("unlock.dat")then RANKS=FILE.load("unlock")end
if fs.getInfo("data.dat")then STAT=FILE.load("data")end
if fs.getInfo("key.dat")then keyMap=FILE.load("key")end
if fs.getInfo("virtualkey.dat")then VK_org=FILE.load("virtualkey")end
if fs.getInfo("account.dat")then ACCOUNT=FILE.load("account")end
if fs.getInfo("tech_ultimate.dat")then fs.remove("tech_ultimate.dat")end
if fs.getInfo("tech_ultimate+.dat")then fs.remove("tech_ultimate+.dat")end
table.insert(_LOADTIMELIST_,("Load Files: %.3fs"):format(TIME()-_LOADTIME_))
--Update data
do
--Check Ranks
local R=RANKS
R.sprint_10=R.sprint_10 or 0
if R.infinite and R.infinite~=6 then
R.infinite=6
R.infinite_dig=6
fs.remove("infinite.dat")
fs.remove("infinite_dig.dat")
end
if not text.modes[STAT.lastPlay]then
STAT.lastPlay="sprint_10"
end
local needSave
--Check setting file
local S=SETTING
if
type(S.block)~="boolean"or
type(S.spawn)~="number"or
type(S.ghost)~="number"or
type(S.center)~="number"or
S.bgm>1 or S.sfx>1 or S.voc>1 or
S.stereo>1 or S.VKSFX>1 or S.VKAlpha>1
then
NOGAME=true
fs.remove("settings.dat")
end
if not fs.getInfo('conf/data')then
needSave=true
end
if type(STAT.version)~='number'then
STAT.version=0
needSave=true
end
if STAT.version<1500 then
FILE.clear_s('')
end
if STAT.version<1505 then
fs.remove('record/bigbang.rec')
fs.remove('conf/replay')
end
if STAT.version==1506 then
local temp1,temp2
if fs.getInfo('record/master_l.rec')then
temp1=fs.read('record/master_l.rec')
end
if fs.getInfo('record/master_u.rec')then
temp2=fs.read('record/master_u.rec')
end
if temp1 then
fs.write('record/master_u.rec',temp1)
end
if temp2 then
fs.write('record/master_l.rec',temp2)
end
RANKS.master_l,RANKS.master_u=RANKS.master_u,RANKS.master_l
if RANKS.tsd_u then
RANKS.tsd_u=0
end
end
if STAT.version==1601 then
RANKS.round_e=nil
RANKS.round_n=nil
RANKS.round_h=nil
RANKS.round_l=nil
RANKS.round_u=nil
fs.remove('record/round_e.rec')
fs.remove('record/round_n.rec')
fs.remove('record/round_h.rec')
fs.remove('record/round_l.rec')
fs.remove('record/round_u.rec')
end
if STAT.version<1700 and SETTING.dascut<5 then
SETTING.dascut=SETTING.dascut+1
needSave=true
end
if SETTING.vocPack=='mono'then
SETTING.vocPack='miya'
end
if RANKS.stack_e then
RANKS.stack_e=nil
RANKS.stack_h=nil
RANKS.stack_u=nil
fs.remove('record/stack_e.rec')
fs.remove('record/stack_h.rec')
fs.remove('record/stack_u.rec')
end
if RANKS.stack_20l then
RANKS.stack_20l=nil
RANKS.stack_40l=nil
RANKS.stack_100l=nil
fs.remove('record/stack_20l.rec')
fs.remove('record/stack_40l.rec')
fs.remove('record/stack_100l.rec')
end
if RANKS.rhythm_e then
RANKS.rhythm_e=nil
RANKS.rhythm_h=nil
RANKS.rhythm_u=nil
fs.remove('record/rhythm_e.rec')
fs.remove('record/rhythm_h.rec')
fs.remove('record/rhythm_u.rec')
end
if RANKS.bigbang then
RANKS.clearRush,RANKS.bigbang=RANKS.bigbang
fs.remove('record/bigbang.rec')
end
if STAT.version~=VERSION.code then
for k,v in next,MODE_UPDATE_MAP do
if RANKS[k]then
RANKS[v]=RANKS[k]
RANKS[k]=nil
end
k='record/'..k
if fs.getInfo(k..'.dat')then
fs.write('record/'..v..'.rec',fs.read(k..'.dat'))
fs.remove(k..'.dat')
end
if fs.getInfo(k..'.rec')then
fs.write('record/'..v..'.rec',fs.read(k..'.rec'))
fs.remove(k..'.rec')
end
end
STAT.version=VERSION.code
needSave=true
end
SETTING.appLock,SETTING.dataSaving,SETTING.swap=nil
if not SETTING.VKSkin then SETTING.VKSkin=1 end
for _,v in next,SETTING.skin do if v<1 or v>17 then v=17 end end
if not RSlist[SETTING.RS]then SETTING.RS='TRS'end
if SETTING.ghostType=='greyCell'then SETTING.ghostType='grayCell'end
if type(SETTING.skinSet)=='number'then SETTING.skinSet='crystal_scf'end
if not TABLE.find({8,10,13,17,22,29,37,47,62,80,100},SETTING.frameMul)then SETTING.frameMul=100 end
if SETTING.cv then SETTING.vocPack,SETTING.cv=SETTING.cv end
if type(SETTING.bg)~='string'then SETTING.bg='on'end
if SETTING.skin[18]==10 then SETTING.skin[18]=4 end
if SETTING.reTime>3 or SETTING.reTime<.5 then SETTING.reTime=2 end
if RANKS.infinite then RANKS.infinite=0 end
if RANKS.infinite_dig then RANKS.infinite_dig=0 end
if not RANKS.sprint_10l then RANKS.sprint_10l=0 end
if RANKS.master_l then RANKS.master_n,RANKS.master_l=RANKS.master_l needSave=true end
if RANKS.master_u then RANKS.master_h,RANKS.master_u=RANKS.master_u needSave=true end
for _,v in next,VK_ORG do v.color=nil end
for name,rank in next,RANKS do
if type(name)=='number'or type(rank)~='number'then
RANKS[name]=nil
needSave=true
end
end
if fs.getInfo("cold_clear.dll")then
NOGAME=true
fs.remove("cold_clear.dll")
fs.remove("CCloader.dll")
end
if needSave then
saveStats()
saveProgress()
saveSettings()
love.event.quit('restart')
end
end
--Update data file
S=STAT
freshDate()
if S.extraRate then
S.finesseRate=5*(S.piece-S.extraRate)
end
if S.version~=VERSION_CODE then
if(tonumber(S.version)or 0)<1204 then
STAT.frame=math.floor(STAT.time*60)
STAT.lastPlay="sprint_10"
RANKS.sprintFix=nil
RANKS.sprintLock=nil
fs.remove("sprintFix.dat")
fs.remove("sprintLock.dat")
end
newVersionLaunch=true
--First start
FIRSTLAUNCH=STAT.run==0
if FIRSTLAUNCH and MOBILE then
SETTING.VKSwitch=true
SETTING.powerInfo=true
SETTING.cleanCanvas=true
end
--Try unlock modes which should be unlocked
for name,rank in next,RANKS do
if rank and rank>0 then
for _,mode in next,MODES do
if mode.name==name and mode.unlock then
for _,unlockName in next,mode.unlock do
if not RANKS[unlockName]then
RANKS[unlockName]=0
end
end
end
end
end
end
--Apply system setting
applySettings()
S.version=VERSION_CODE
FILE.save(RANKS,"unlock","q")
FILE.save(STAT,"data")
end
end
--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
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
end
::BREAK_cannotParse::
local rep=DATA.parseReplay('replay/'..fileName)
table.insert(REPLAY,rep)
end
table.sort(REPLAY,function(a,b)return a.fileName>b.fileName end)
table.insert(_LOADTIMELIST_,("Initialize Data: %.3fs"):format(TIME()-_LOADTIME_))
for i=1,#_LOADTIMELIST_ do LOG(_LOADTIMELIST_[i])end
--Launch testing task if launch param received
if TABLE.find(arg,'--test')then
TASK.new(function()
while not LOADED do YIELD()end
LOG("\27[92m\27[1mAutomatic Test Started\27[0m")
BGM.setVol(0)SFX.setVol(0)
love.keypressed('space')
TEST.yieldUntilNextScene()
for k,mode in next,MODES do
if k~='netBattle'then
LOG("Scanning mode: "..mode.name)
loadGame(mode.name,true)
TEST.yieldUntilNextScene()
SCN.back()
TEST.yieldUntilNextScene()
end
end
LOG("\27[92m\27[1mAutomatic Test Passed :)\27[0m")
TEST.yieldN(60)
love.event.quit(0)
end)
TASK.new(function()
while true do
YIELD()
if Z.getErr(1)then break end
end
LOG("\27[91m\27[1mAutomatic Test Failed :(\27[0m\nThe error message is:\n"..table.concat(Z.getErr(1).mes,"\n").."\27[91m\nAborting\27[0m")
TEST.yieldN(60)
love.event.quit(1)
end)
end

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.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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