holonet / sc2calc
基于sc2calc.org的SC2构建计算器库
Requires
- php: >=7.3
- ext-json: *
- holonet/cli: ~1.2.0
- myclabs/php-enum: ^1.7
- symfony/stopwatch: ^5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.11
- phpunit/phpunit: ^8.4.1
- symfony/var-dumper: ^5.0
- vimeo/psalm: ^3.5
This package is auto-updated.
Last update: 2024-09-08 20:02:06 UTC
README
#sc2calc库
用PHP编写的SC2构建顺序计算器库
这是基于sc2calc.org的重写
目前,由于所有游戏数据尚未更新,此计算器仅适用于旧WOL构建。
为什么?
我一直对sc2calc.org上的旧构建顺序计算器很感兴趣。它看起来像是一款很酷的工具。当我决定尝试更新它时,我意识到这是一个多么古老的网络应用程序,以及它显示了什么。因此,我决定重写旧应用程序的计算器逻辑,将其与连接的HTML渲染分离,并以库的形式提供该功能。
此计算器仍然可以作为独立的工具使用,使用提供的供应商二进制命令行脚本来使用。
安装
安装库的首选/唯一方式是通过composer
composer require holonet/sc2calc
或更新您的composer.json
...
"require": {
"holonet/sc2calc": "~1.0"
},
...
如何使用
作为库
<?php require __DIR__ . '/vendor/autoload.php'; $order = <<<BUILD 10 Supply Depot 12 Barracks 14 Refinery, then put 3 SCVs on gas (2 seconds) 16 Orbital Command, then constant Calldown: MULE 17 Barracks, then Tech Lab on Barracks, then Stimpack 18 Barracks, then Reactor on Barracks BUILD; $sc2calc = new \holonet\sc2calc\Sc2Calc(); //build object containing the calculated timeline with all events $build = $sc2calc->fromBuildOrderString($order);
从命令行
cat mothershiprush.txt | php vendor/bin/sc2calc
这将打印生产队列和收入数据到cmd行,例如
命令行供应商二进制有许多有用的选项。运行php vendor/bin/sc2calc --help
查看所有选项。
待办事项
- 更新数据包到LOTV,添加新单位和结构
- 读取/写入其他构建顺序字符串格式,例如SALT编码
- 更多结构化重构,使代码更易读
贡献指南
如果您想为库做出贡献,只需在github上分叉它,并最终发送给我一个pull request。
您甚至不需要编写任何代码就可以做出贡献,因为计算器的主要组成部分是位于data/
子目录中的数据包文件,它们是简单的json文件。
如果您想“训练”库,最好使用带有--debug
标志的命令行脚本
cat dev_build.txt | php vendor/bin/sc2calc --debug
这将打印出广泛的调试跟踪,说明库正在做什么。
如果您使用构建来修复错误或验证json数据更改,最好将它们放入tests/orders/
子目录,这样它们将自动作为phpunit测试运行。
在开发过程中,我使用代码质量保证工具,如php-cs-fixer和psalm。如果您做出了贡献,可以运行composer test
来自动测试您的代码。