mike-reinders/runeterra-php

Runeterra 卡牌代码编码/解码器 PHP 库

1.1 2021-03-04 01:59 UTC

This package is auto-updated.

Last update: 2024-09-29 05:28:52 UTC


README

基于 SwitchbladeBot/runeterra 开发的 PHP 库,用于
解码 Runeterra 的卡组代码并编码卡组。

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

安装

composer require mike-reinders/runeterra-php

访问 Packagist.org mike-reinders/runeterra-php
下载 Composer PHP 依赖管理器

指南

原始卡组

// DeckEncoding
$raw_deck = DeckEncoding::decode("CEBAIAICAMGRWMIHAECQOCQVC4RC6MICAEAQKKQBAEBASAQBAECQ6AQBAIDSA");
$deck_code = DeckEncoding::encode($raw_deck);

// or DeckEncodingFactory
$raw_deck = DeckEncodingFactory::toRawDeck("CEBAIAICAMGRWMIHAECQOCQVC4RC6MICAEAQKKQBAEBASAQBAECQ6AQBAIDSA");
$deck_code = DeckEncodingFactory::fromRawDeck($raw_deck);
返回格式
$raw_deck = [
  [
    0 => 1,  // set
    1 => 2,  // faction id
    2 => 3,  // card number
    3 => 3   // card count
  ],
  ...
];

卡牌代码卡组

// DeckEncodingFactory
$card_code_deck = DeckEncodingFactory::toCardCodeDeck("CEBAIAICAMGRWMIHAECQOCQVC4RC6MICAEAQKKQBAEBASAQBAECQ6AQBAIDSA");
$deck_code = DeckEncodingFactory::fromCardCodeDeck($card_code_deck);
返回格式
$card_code_deck = [
  "01IO003" => 3, // card code => count
  "01IO013" => 3,
  "01SI049" => 3,
  "01SI042" => 2,
  "01IO009" => 2,
  "01SI015" => 1,
  ...
];

卡组

// DeckEncodingFactory
$card_deck = DeckEncodingFactory::toCardDeck("CEBAIAICAMGRWMIHAECQOCQVC4RC6MICAEAQKKQBAEBASAQBAECQ6AQBAIDSA", Card::class);
$deck_code = DeckEncodingFactory::fromCardDeck($card_deck);
返回格式
$card_deck = [
  Card {
    #set: 1
    #faction_id: 2
    #number: 3
    #count: 3
  },
  Card {
    #set: 1
    #faction_id: 2
    #number: 13
    #count: 3
  },
  Card {
    #set: 1
    #faction_id: 2
    #number: 27
    #count: 3
  },
  Card {
    #set: 1
    #faction_id: 2
    #number: 49
    #count: 3
  }
  ...
];

库测试

PHP-CLI

composer install --dev
./vendor/bin/phpunit --bootstrap vendor/autoload.php --testdox tests

Docker

下载 & 安装
构建镜像
docker build --no-cache -t runeterra-php:latest ./docker
测试它!
# simply run
docker run --name=runeterra-php --rm -it runeterra-php test

# watch: Linux Shell
docker run --name=runeterra-php --rm --volume "/${PWD}:/repository:rw" -it runeterra-php test watch

# watch: Windows Powershell
docker run --name=runeterra-php --rm --volume "${PWD}:/repository:rw" -it runeterra-php test watch

# watch: Windows Command Prompt (CMD)
docker run --name=runeterra-php --rm --volume "%CD%:/repository:rw" -it runeterra-php test watch