init test cards preset

This commit is contained in:
openlegends 2024-03-15 15:25:05 +02:00
parent 70544ba874
commit 51ed6aca12
7 changed files with 36 additions and 183 deletions

View File

@ -1,140 +0,0 @@
<?php
namespace OpenLegends\Asset;
class Config
{
private string $_asset;
public function __construct(string $asset)
{
if (is_dir(__DIR__ . DIRECTORY_SEPARATOR . $asset))
{
$this->_asset = $asset;
}
else
{
throw new \Exception();
}
}
public function getCards(
?string $folder = 'Cards',
?array $type = null,
?array $attributes = null,
?array $title = null,
?array $description = null,
?array $cost = null,
?array $attack = null,
?array $health = null,
?array $craft = null,
?array $extract = null
): array
{
$cards = [];
foreach (
$this->_getConfigs(
__DIR__ . DIRECTORY_SEPARATOR . $this->_asset . DIRECTORY_SEPARATOR . $folder
) as $card)
{
if ($type && !in_array($card->type, $type))
{
continue;
}
if ($attributes && !in_array($card->attributes, $attributes))
{
continue;
}
if ($title && !in_array($card->title, $title))
{
continue;
}
if ($description && !in_array($card->description, $description))
{
continue;
}
if ($cost && !in_array($card->cost, $cost))
{
continue;
}
if ($attack && !in_array($card->attack, $attack))
{
continue;
}
if ($health && !in_array($card->health, $health))
{
continue;
}
if ($craft && !in_array($card->craft, $craft))
{
continue;
}
if ($extract && !in_array($card->extract, $extract))
{
continue;
}
$cards[] = $card;
}
return $cards;
}
private function _getConfigs(
string $location
): array
{
$configs = [];
if (!is_dir($location) || !is_readable($location))
{
throw new \Exception();
}
foreach (scandir($location) as $filename)
{
if (!str_ends_with($filename, '.json'))
{
continue;
}
$configs[] = $this->_getConfig(
$location . DIRECTORY_SEPARATOR . $filename
);
}
return $configs;
}
private function _getConfig(
string $location
): object
{
if (!is_file($location) || !is_readable($location))
{
throw new \Exception();
}
if (!$json = file_get_contents($location))
{
throw new \Exception();
}
if (!$config = json_decode($json))
{
throw new \Exception();
}
return $config;
}
}

12
src/Test/Card/Goblin.php Normal file
View File

@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace OpenLegends\Asset\Test\Card;
class Goblin extends \OpenLegends\Engine\Abstract\Card
{
public function act(
\OpenLegends\Engine\Abstract\Card $card
) {}
}

12
src/Test/Card/Mouse.php Normal file
View File

@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace OpenLegends\Asset\Test\Card;
class Mouse extends \OpenLegends\Engine\Abstract\Card
{
public function act(
\OpenLegends\Engine\Abstract\Card $card
) {}
}

12
src/Test/Card/Rat.php Normal file
View File

@ -0,0 +1,12 @@
<?php
declare(strict_types=1);
namespace OpenLegends\Asset\Test\Card;
class Rat extends \OpenLegends\Engine\Abstract\Card
{
public function act(
\OpenLegends\Engine\Abstract\Card $card
) {}
}

View File

@ -1,14 +0,0 @@
{
"attributes":
[
"attribute 1"
],
"type":"type 1",
"title":"title 1",
"description":"description 1",
"cost":1,
"attack":1,
"health":1,
"craft":1,
"extract":1
}

View File

@ -1,15 +0,0 @@
{
"attributes":
[
"attribute 1",
"attribute 2"
],
"type":"type 2",
"title":"title 2",
"description":"description 2",
"cost":1,
"attack":1,
"health":1,
"craft":1,
"extract":1
}

View File

@ -1,14 +0,0 @@
{
"attributes":
[
"attribute 2"
],
"type":"type 2",
"title":"title 3",
"description":"description 3",
"cost":2,
"attack":2,
"health":2,
"craft":2,
"extract":2
}