chestersa/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: 2023-08-19 00:01:07 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 是一个Field对象

然后你可以比较两个牌组,使用

YuGiOh::compareDecks($deck1, $deck2)

它返回一个包含输出和结果的字符串,如果$deck1比$deck2赢得比赛,则其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 对象,根据需要