c16r/yugioh-pegasus-castle-sprint

Yu-Gi-Oh Pegasus' Castle Sprint 桌面游戏分解

0.3 2023-08-18 23:44 UTC

This package is auto-updated.

Last update: 2024-09-19 02:16:16 UTC


README

一个简单的包,用于比较桌面游戏 Pegasus' Castle Sprint 中的不同卡组

创建卡组。

创建卡组使用 Chestersa\Yugioh\Deck 类,

初始化卡组

$deck = new Deck('Name');

这将创建一个新卡组,名称设置为构造函数中传入的任何内容,名称用于在输出两个卡组之间的结果时使用。

$deck->getName();

然后返回卡组的名称以在其他地方使用

添加卡牌

然后有两种方法可以添加新卡牌

$deck->addCard($name, $atk, $type);
$deck->addCard('Dark Magician', 2500, Chestersa\Yugioh\Field::$DARK);

其中 $name 是卡牌名称,$atk 是卡牌的攻击力,$type 是卡牌的场地类型,在 Chestersa\Yugioh\Field 类中有为这些定义的常量,稍后将解释,但可以使用任何值。

要批量添加卡牌,可以使用 addCards 方法

$deck->addCards([
  ['name' => 'Dark Magician', 'atk' => 2500, 'type' => Chestersa\Yugioh\Field::$DARK]
]);

nameatktype 的键都是必需的,并且应与 addCard 方法相同

处理胜利

每个卡组在初始化时都将有一个 wins 属性设置为 0,这将在它每次在与另一个卡组的对决中获胜时增加。

$deck->addWin()

将胜利增加一个

$deck->getWins()

将返回卡组的当前胜利数

创建场地。

这个游戏中的场地是由不同场地位置的代币组成的,如果场地类型匹配,可以加倍怪物的攻击力。

所有场地对象都使用 Chestersa\Yugioh\Field,它具有游戏中的 5 种场地类型的常量

Field::$NIGHT
Field::$DAY
Field::$GRASS
Field::$FOREST
Field::$WATER

创建场地

$field = new Field();

添加到场地

$field->addToField($type, $amount);

其中 $type 是场地类型的键,$amount 是添加的数量,默认为 1

为了简化操作,有 5 个辅助函数,每个对应一个默认场地类型

$field->addNight($amount)
$field->addDay($amount)
$field->addGrass($amount)
$field->addForest($amount)
$field->addWater($amount)

检索场地

要检索场地设置,请使用

$field->getField();

比较卡组

设置

要比较卡组,请使用 Chestersa\Yugioh\YuGiOh

首先需要设置场地以初始化模拟

YuGiOh::setField($field)

其中 $field 是一个场地对象

然后您可以使用以下方式比较两个卡组

YuGiOh::compareDecks($deck1, $deck2)

这返回一个包含输出和如果 $deck1 获胜次数多于失败次数,其 Wins 属性将增加 1 的字符串。

一次比较多个

要比较多个角色卡组,请使用辅助函数

YuGiOh::runSimulation([$deck1, $deck2, $deck3, $deck4]);

它将运行数组中的每个卡组与所有其他卡组进行比较,并返回包含所有输出字符串的数组。

与对手比较多个

要同时比较多个角色卡组与对手卡组,请使用辅助函数

YuGiOh::runVsOpponents([$deck1, $deck2, $deck3, $deck4], $opponents);

它将运行数组中的每个卡组与对手进行比较,并返回包含输出字符串的数组。

YuGiOhFactory

有一个 Chestersa\Yugioh\YuGiOhFactory 类,它提供了一些帮助函数,用于获取所有卡组和基础桌面游戏中的场地设置

YuGiOhFactory::getYugisDeck();
YuGiOhFactory::getKaibasDeck();
YuGiOhFactory::getJoeysDeck();
YuGiOhFactory::getMaisDeck();
YuGiOhFactory::getOpponentsDeck();
YuGiOhFactory::getDefaultField();

所有函数都返回 Deck 或 Field 对象(根据适用情况)