Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro-core
Commits
c11af256
Commit
c11af256
authored
Feb 04, 2025
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into develop-8888
parents
e4b501d3
488371e3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
34 additions
and
9 deletions
+34
-9
card.cpp
card.cpp
+28
-7
effect.h
effect.h
+6
-2
No files found.
card.cpp
View file @
c11af256
...
@@ -1113,22 +1113,43 @@ uint32_t card::check_xyz_level(card* pcard, uint32_t lv) {
...
@@ -1113,22 +1113,43 @@ uint32_t card::check_xyz_level(card* pcard, uint32_t lv) {
uint32_t rlv = pduel->game_field->rose_level;
uint32_t rlv = pduel->game_field->rose_level;
if(rcard == this && rlv == lv)
if(rcard == this && rlv == lv)
return rlv;
return rlv;
int32_t min_count = 0;
effect_set mset;
filter_effect(EFFECT_XYZ_MIN_COUNT, &mset);
for (int32_t i = 0; i < mset.size(); ++i) {
pduel->lua->add_param(this, PARAM_TYPE_CARD);
pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
int32_t count = mset[i]->get_value(2);
if (count > min_count)
min_count = count;
}
if (min_count > 0xf)
min_count = 0xf;
effect_set eset;
effect_set eset;
filter_effect(EFFECT_XYZ_LEVEL, &eset);
filter_effect(EFFECT_XYZ_LEVEL, &eset);
if(!eset.size()) {
if(!eset.size()) {
uint32_t
le
v
=
get_level
();
uint32_t
card_l
v = get_level();
if
(
le
v
==
lv
)
if
(card_l
v == lv)
return
lev
;
return
(card_lv & MAX_XYZ_LEVEL) | ((uint32_t)min_count << 12)
;
return 0;
return 0;
}
}
for(int32_t i = 0; i < eset.size(); ++i) {
for(int32_t i = 0; i < eset.size(); ++i) {
pduel->lua->add_param(this, PARAM_TYPE_CARD);
pduel->lua->add_param(this, PARAM_TYPE_CARD);
pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
pduel->lua->add_param(pcard, PARAM_TYPE_CARD);
uint32_t lev = eset[i]->get_value(2);
uint32_t lev = eset[i]->get_value(2);
if
(((
lev
&
0xfff
)
==
lv
))
uint16_t lv1 = lev & MAX_XYZ_LEVEL;
return
lev
&
0xffff
;
uint16_t count1 = (lev & 0xf000) >> 12;
if
(((
lev
>>
16
)
&
0xfff
)
==
lv
)
if (count1 < min_count)
return
(
lev
>>
16
)
&
0xffff
;
count1 = min_count;
if (lv1 == lv)
return lv1 | ((uint32_t)count1 << 12);
lev >>= 16;
uint16_t lv2 = lev & MAX_XYZ_LEVEL;
uint16_t count2 = (lev & 0xf000) >> 12;
if (count2 < min_count)
count2 = min_count;
if (lv2 == lv)
return lv2 | ((uint32_t)count2 << 12);
}
}
return 0;
return 0;
}
}
...
...
effect.h
View file @
c11af256
...
@@ -549,6 +549,7 @@ const std::map<uint64_t, uint64_t> category_checklist{
...
@@ -549,6 +549,7 @@ const std::map<uint64_t, uint64_t> category_checklist{
#define EFFECT_TUNER 369
#define EFFECT_TUNER 369
#define EFFECT_KAISER_COLOSSEUM 370
#define EFFECT_KAISER_COLOSSEUM 370
#define EFFECT_REPLACE_DAMAGE 371
#define EFFECT_REPLACE_DAMAGE 371
#define EFFECT_XYZ_MIN_COUNT 372
//#define EVENT_STARTUP 1000
//#define EVENT_STARTUP 1000
#define EVENT_FLIP 1001
#define EVENT_FLIP 1001
...
@@ -626,8 +627,11 @@ const std::map<uint64_t, uint64_t> category_checklist{
...
@@ -626,8 +627,11 @@ const std::map<uint64_t, uint64_t> category_checklist{
#define EVENT_REMOVE_COUNTER 0x20000
#define EVENT_REMOVE_COUNTER 0x20000
#define EVENT_CUSTOM 0x10000000
#define EVENT_CUSTOM 0x10000000
constexpr
int32_t
DOUBLE_DAMAGE
=
0x80000000
;
constexpr
int32_t
DOUBLE_DAMAGE
=
INT32_MIN
;
constexpr
int32_t
HALF_DAMAGE
=
0x80000001
;
constexpr
int32_t
HALF_DAMAGE
=
INT32_MIN
+
1
;
constexpr
uint32_t
MAX_PARAMETER
=
0xffffU
;
constexpr
uint32_t
MAX_XYZ_LEVEL
=
0x0fffU
;
// flag effect
// flag effect
#define EFFECT_FLAG_EFFECT 0x20000000U
#define EFFECT_FLAG_EFFECT 0x20000000U
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment