Skip to content

Releases: edo9300/ygopro-core

v10.0

18 Sep 11:46
Compare
Choose a tag to compare
  • Update internal race value to 64 bit #127
    • the race field in OCG_CardData is now an uint64_t
    • QUERY_RACE will send its value as an uint64_t
    • MSG_ANNOUNCE_RACE will send the value of the races to be declared as uint64_t and it will now expect an uint64_t as a response
    • HINT_RACE will send its value as an unt64_t
  • Update RNG engine to use Xoshiro256 #124
    • The seed value in the OCG_DuelOptions struct is now an array of 4 uint64_t values
  • Add new OCG_DuelOptions parameter to make the core not load "unsafe" libraries #126
    • This add a new uint8_t element at the end of the OCG_DuelOptions, setting it to a nonzero value will make the core not open the io library and will disable the dofile, loadfile and collectgarbage functions

v9.1

13 Feb 16:32
Compare
Choose a tag to compare

Update MSG_SELECT_SUM message structure, now it will send the full location info so that cards that are overlay materials can be properly selected #125

TCG love

23 Dec 17:08
Compare
Choose a tag to compare
  • Changed the behaviour of cards that trigger their effects simultaneously to another action that made them go to the location where they can trigger.

  • Added new duel flags to handle goat rules and also added some tcg only flags

#define DUEL_USE_TRAPS_IN_NEW_CHAIN 0x04
#define DUEL_TRIGGER_WHEN_PRIVATE_KNOWLEDGE 0x20
#define DUEL_EQUIP_NOT_SENT_IF_MISSING_TARGET       0x8000000
#define DUEL_0_ATK_DESTROYED   0x10000000
#define DUEL_STORE_ATTACK_REPLAYS   0x20000000
#define DUEL_SINGLE_CHAIN_IN_DAMAGE_SUBSTEP   0x40000000
#define DUEL_CAN_REPOS_IF_NON_SUMPLAYER 0x80000000
#define DUEL_TCG_SEGOC_NONPUBLIC	   0x100000000
#define DUEL_TCG_SEGOC_FIRSTTRIGGER 0x200000000
  • Changed opcodes in msg_announce_card to be 64 bit, allows to have a full card id masked into them.
    Add 2 new opcodes for announce card:
#define OPCODE_ALLOW_ALIASES 0x4000001400000000
#define OPCODE_ALLOW_TOKENS 0x4000001500000000
  • Standardized OCG_Player struct, now it uses uint32_t for its members
typedef struct OCG_Player {
	int startingLP;
	int startingDrawCount;
	int drawCountPerTurn;
	uint32_t startingLP;
	uint32_t startingDrawCount;
	uint32_t drawCountPerTurn;
}OCG_Player;

Same for OCG_DataReader type

typedef void (*OCG_DataReader)(void* payload, uint32_t code, OCG_CardData* data);

Also now the pointer passed to OCG_CardData will be already zeroed out.

  • Changed OCG_DuelOptions's flag parameter to uint64_t to account for the new flags.
    Revamped type checking across the lua api, with more accurate type checks, including proper checking for integer and boolean values (that before were just ignored)

Master Rule 2020 rulings

02 Apr 03:49
Compare
Choose a tag to compare

Added 13 additional duel flags for various rulings changed with Master Rule 2020 or mechanics relevant to Rush Duels.

v7.0

18 Mar 11:04
Compare
Choose a tag to compare

Implemented MSG_CARD_SELECTED, the message structure is the same as MSG_BECOME_TARGET, with the difference than this one is intended to be merely a visible hint

Rush duel

26 Feb 20:18
Compare
Choose a tag to compare

Added rush duel support, and updated the rule flags also used by speed duel.
New flags

#define DUEL_NO_STANDBY_PHASE  0x10000
#define DUEL_NO_MAIN_PHASE_2   0x20000
#define DUEL_3_COLUMNS_FIELD   0x40000
#define DUEL_DRAW_UNTIL_5      0x80000
#define DUEL_NO_HAND_LIMIT     0x100000
#define DUEL_UNLIMITED_SUMMONS 0x200000
#define DUEL_SPEED             DUEL_3_COLUMNS_FIELD | DUEL_NO_MAIN_PHASE_2
#define DUEL_RUSH              DUEL_3_COLUMNS_FIELD | DUEL_NO_MAIN_PHASE_2 | DUEL_NO_STANDBY_PHASE | DUEL_1ST_TURN_DRAW | DUEL_DRAW_UNTIL_5 | DUEL_NO_HAND_LIMIT | DUEL_UNLIMITED_SUMMONS

v6.0

07 Feb 20:31
Compare
Choose a tag to compare

Changed signature of OCG_DuelSetResponse, now it's OCG_DuelSetResponse(OCG_Duel duel, const void* buffer, uint32_t length)
Pass OCG_CardData* as second parameter of OCG_DataReaderDone
Updated MSG_SWAP_GRAVE_DECK and made it no longer dependent on the client by passing the count of cards to be moved from the graveyard, and an array of bits to tell the client which cards should go in the extra deck

v5.1

16 Jan 21:47
Compare
Choose a tag to compare

Updated MSG_RELOAD_FIELD now it'll send xyz material count for cards in the spell zone aswell

Unlimited setcodes

16 Jan 21:42
Compare
Choose a tag to compare

Updated the way card data is retrieved from the api, now setcodes will have to be passed as pointer to an array, this removes the limit of max 4 setcodes per card. Added new api function OCG_ReadCardDone, and updated the OCG_DuelOptions struct to be passed to OCG_CreateDuel to support the callback for this function and its payload (this function can be optional depending on the implementation of how cards are read in the program)

More space for codes

25 Nov 17:46
Compare
Choose a tag to compare

MSG_DECK_TOP, MSG_TAG_SWAP and MSG_DRAW will now send the card position after the code, instead of setting the last bit if the card is faceup.
MSG_SELECT_BATTLECMD and MSG_SELECT_IDLECMD wil now send the operation type of the effects that can be activated after the description of the effect, instead of setting that as the last bit of the code.
MSG_SELECT_CHAIN will now send the chain count after the hints, and the effect type will be sent after the effect description, instead of before the owner's code.