Releases: edo9300/ygopro-core
v10.0
- Update internal race value to 64 bit #127
- the
race
field inOCG_CardData
is now anuint64_t
QUERY_RACE
will send its value as anuint64_t
MSG_ANNOUNCE_RACE
will send the value of the races to be declared asuint64_t
and it will now expect anuint64_t
as a responseHINT_RACE
will send its value as anunt64_t
- the
- Update RNG engine to use Xoshiro256 #124
- The seed value in the
OCG_DuelOptions
struct is now an array of 4uint64_t
values
- The seed value in the
- 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 theOCG_DuelOptions
, setting it to a nonzero value will make the core not open theio
library and will disable thedofile
,loadfile
andcollectgarbage
functions
- This add a new
v9.1
TCG love
-
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
Added 13 additional duel flags for various rulings changed with Master Rule 2020 or mechanics relevant to Rush Duels.
v7.0
Rush duel
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
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
Unlimited setcodes
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
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.