holonet/sc2calc

此包最新版本(dev-master)没有提供许可证信息。

基于sc2calc.org的SC2构建计算器库

dev-master 2020-05-08 09:55 UTC

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行,例如

image

命令行供应商二进制有许多有用的选项。运行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来自动测试您的代码。