hexorb - PokemonSanFran/pokeemerald GitHub Wiki

hexorb Header

Introduction

https://github.com/user-attachments/assets/e2970589-730e-4b2d-95a3-bf99d9bbe84d

This branch allows developers to use the Hexorb item in their decomp projects. This implementation was inspired by the Pokémon Center Clerk found in Pokémon Run and Bun. This item allows the player to give the Pokémon in their party a status condition.

Installation

These instructions assume that you can build pokeemerald-expansion, have a basic understanding of C, and are familiar with using the in-game scripting language. If you do not, please watch the tutorials series from Team Aqua's Hideout.

git merge (recommended)

From the root directory of your project, run the following commands in your terminal program of choice:

git remote add psf-expansion https://github.com/PokemonSanFran/pokeemerald-expansion/ # This adds our team's pokeemerald-expansion branch as a remote repo.
git pull psf-expansion hexorb # This pulls in the pokevial feature branch

Manual merge

If your project is:

  • Too far behind pokeemerald-expansion
  • Using a different base (pokeemerald or pokefirered)
  • Some other reason that I can't think of

You can manually implement the features using the diff between this branch and vanilla pokeemerald-expansion as a guide. You will need to manually edit or create each of these files in your project to properly recreate the feature.

Usage

This branch adds ITEM_HEXORB as an item. It is stored in POCKET_KEY_ITEMS, and can be used by the player outside of battle. Hexorb cannot be used during battle.

Registered Key Item

https://github.com/user-attachments/assets/328650ee-5275-459b-8c13-52d2afb4d158

Players can set the Hexorb as a registered Key Item and use it from the field. Upon completion, they will return to the field.

Set Status

When the player uses the Hexorb, they are prompted to select a Pokémon. If a valid Pokémon has been selected, the player will then select a status condition. If the chosen status is valid, that Pokémon will be given that status, and the party menu will close.

Failure

Eggs

If the player selects an Egg, nothing happens.

Fainted

https://github.com/user-attachments/assets/a975fc13-a826-47bc-91ed-1ae0b8661e11

If the player selects a fainted Pokémon, they are informed that the Hexorb will have no effect, and prompted to select another Pokémon.

HEXORB_BLOCK_STATUS

Developers can change this define in include/hexorb.h. HEXORB_BLOCK_STATUS is FALSE by default.

https://github.com/user-attachments/assets/2409ae39-3465-4960-87bf-35c6e671e2da

When it is FALSE, if the selected Pokémon already has a non-volatile status condition, the Hexorb will overwrite the Pokémon existing status condition.

https://github.com/user-attachments/assets/f948a2c5-5017-4429-ac14-86b418c96021

When it is TRUE, if the selected Pokémon already has a non-volatile status condition, the Hexorb cannot give a status condition to that Pokémon. If the player tries, they will be informed of the failure and prompted to choose another Pokémon.

Ability

https://github.com/user-attachments/assets/3d584e0c-367a-4bd1-aebf-edb04f185a6b

If the player selects a Pokémon with an Ability that can prevent a specific status condition and a status condition that is blocked by that Ability the player is informed of the failure and prompted to choose another status condition.

Type

https://github.com/user-attachments/assets/338bab57-e894-4180-86e5-ac5ddca6a8ee

If the player selects a Pokémon with a type that can prevent a specific status condition and a status condition that is blocked by one of the type's of that Pokémon, the player is informed of the failure and prompted to choose another status condition.

Frostbite

https://github.com/user-attachments/assets/a9b73caa-1070-4d13-bdc3-f9a6108d8c1c

If B_USE_FROSTBITE is TRUE, all instances of Freeze and replaced by Frostbite.

Known Issues

Happily taking pull requests to fix these!

  • When the Hexorb is used on a Pokémon that does not have a status condition, after the cry plays, the bottom of that Pokémon's HP box has an extra line of pixels, which is leftover from the Pokémon's level previously being displayed.
  • The Hexorb does not work during battle. This is by design, but I would take a pull request that added this functionality via a config.

Support

Frequently Asked Questions (FAQ)

Why doesn't this cleanly merge with pokeemerald?

This feature is only for pokeemerald-expansion. I will happily credit and link to somebody that ports this work to pokeemerald, but I have no interest in doing so.

Other Questions

If you have read all of the documentation here and still have questions, please ask a good question in the #decomps channel of the RHH Discord server. Please tag pkmnsnfrn and we will try to help if we can.

Donations

If you got some use out of this feature, please consider donating. We are currently not taking any donations, so please donate to some of our favorite charities.

Contributors

n/a

CHANGELOG

All changes to this project will be documented in this section. The format is based on Keep a Changelog, and this project tries to adhere to Semantic Versioning.

Unreleased

n/a

[1.0.0] - 2024-11-29

Added

  • First release