Implement frost walker enchantment (#5497)

Co-authored-by: Dylan T. <dktapps@pmmp.io>
This commit is contained in:
IvanCraft623
2024-12-01 14:46:38 -05:00
committed by GitHub
parent f3763ae691
commit f1a3b42620
6 changed files with 71 additions and 1 deletions

View File

@ -57,6 +57,7 @@ final class AvailableEnchantmentRegistry{
$this->register(Enchantments::THORNS(), [Tags::CHESTPLATE], [Tags::HELMET, Tags::LEGGINGS, Tags::BOOTS]);
$this->register(Enchantments::RESPIRATION(), [Tags::HELMET], []);
$this->register(Enchantments::AQUA_AFFINITY(), [Tags::HELMET], []);
$this->register(Enchantments::FROST_WALKER(), [/* no primary items */], [Tags::BOOTS]);
$this->register(Enchantments::SHARPNESS(), [Tags::SWORD, Tags::AXE], []);
$this->register(Enchantments::KNOCKBACK(), [Tags::SWORD], []);
$this->register(Enchantments::FIRE_ASPECT(), [Tags::SWORD], []);

View File

@ -44,6 +44,7 @@ final class StringToEnchantmentParser extends StringToTParser{
$result->register("fire_protection", fn() => VanillaEnchantments::FIRE_PROTECTION());
$result->register("flame", fn() => VanillaEnchantments::FLAME());
$result->register("fortune", fn() => VanillaEnchantments::FORTUNE());
$result->register("frost_walker", fn() => VanillaEnchantments::FROST_WALKER());
$result->register("infinity", fn() => VanillaEnchantments::INFINITY());
$result->register("knockback", fn() => VanillaEnchantments::KNOCKBACK());
$result->register("mending", fn() => VanillaEnchantments::MENDING());

View File

@ -41,6 +41,7 @@ use pocketmine\utils\RegistryTrait;
* @method static ProtectionEnchantment FIRE_PROTECTION()
* @method static Enchantment FLAME()
* @method static Enchantment FORTUNE()
* @method static Enchantment FROST_WALKER()
* @method static Enchantment INFINITY()
* @method static KnockbackEnchantment KNOCKBACK()
* @method static Enchantment MENDING()
@ -145,6 +146,16 @@ final class VanillaEnchantments{
fn(int $level) : int => 10 * $level,
30
));
self::register("FROST_WALKER", new Enchantment(
KnownTranslationFactory::enchantment_frostwalker(),
Rarity::RARE,
0,
0,
2,
fn(int $level) : int => 10 * $level,
15
));
self::register("AQUA_AFFINITY", new Enchantment(
KnownTranslationFactory::enchantment_waterWorker(),
Rarity::RARE,