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
433b3131
Commit
433b3131
authored
May 18, 2024
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rename ptuner to tuner_limit
parent
ad00f8bf
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
51 deletions
+51
-51
field.cpp
field.cpp
+31
-31
field.h
field.h
+1
-1
operations.cpp
operations.cpp
+19
-19
No files found.
field.cpp
View file @
433b3131
...
@@ -2536,9 +2536,9 @@ int32 field::check_must_material(group* mg, uint8 playerid, uint32 limit) {
...
@@ -2536,9 +2536,9 @@ int32 field::check_must_material(group* mg, uint8 playerid, uint32 limit) {
return
FALSE
;
return
FALSE
;
return
TRUE
;
return
TRUE
;
}
}
void
field
::
get_synchro_material
(
uint8
playerid
,
card_set
*
material
,
effect
*
ptuner
)
{
void
field
::
get_synchro_material
(
uint8
playerid
,
card_set
*
material
,
effect
*
tuner_limit
)
{
if
(
ptuner
&&
ptuner
->
value
)
{
if
(
tuner_limit
&&
tuner_limit
->
value
)
{
int32
location
=
ptuner
->
value
;
int32
location
=
tuner_limit
->
value
;
if
(
location
&
LOCATION_MZONE
)
{
if
(
location
&
LOCATION_MZONE
)
{
for
(
auto
&
pcard
:
player
[
playerid
].
list_mzone
)
{
for
(
auto
&
pcard
:
player
[
playerid
].
list_mzone
)
{
if
(
pcard
&&
!
pcard
->
is_treated_as_not_on_field
())
if
(
pcard
&&
!
pcard
->
is_treated_as_not_on_field
())
...
@@ -2629,15 +2629,15 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
...
@@ -2629,15 +2629,15 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
++
ct
;
++
ct
;
}
}
int32
location
=
LOCATION_MZONE
;
int32
location
=
LOCATION_MZONE
;
effect
*
ptuner
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
effect
*
tuner_limit
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
value
)
if
(
tuner_limit
->
value
)
location
=
ptuner
->
value
;
location
=
tuner_limit
->
value
;
if
(
ptuner
->
is_flag
(
EFFECT_FLAG_SPSUM_PARAM
))
{
if
(
tuner_limit
->
is_flag
(
EFFECT_FLAG_SPSUM_PARAM
))
{
if
(
ptuner
->
s_range
&&
ptuner
->
s_range
>
min
)
if
(
tuner_limit
->
s_range
&&
tuner_limit
->
s_range
>
min
)
min
=
ptuner
->
s_range
;
min
=
tuner_limit
->
s_range
;
if
(
ptuner
->
o_range
&&
ptuner
->
o_range
<
max
)
if
(
tuner_limit
->
o_range
&&
tuner_limit
->
o_range
<
max
)
max
=
ptuner
->
o_range
;
max
=
tuner_limit
->
o_range
;
}
}
if
(
min
>
max
)
{
if
(
min
>
max
)
{
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
...
@@ -2670,16 +2670,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
...
@@ -2670,16 +2670,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
target
)
{
if
(
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
smat
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
smat
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
{
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
{
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
}
}
if
(
ptuner
->
value
&&
!
(
smat
->
current
.
location
&
location
))
{
if
(
tuner_limit
->
value
&&
!
(
smat
->
current
.
location
&
location
))
{
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
...
@@ -2721,16 +2721,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
...
@@ -2721,16 +2721,16 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
target
)
{
if
(
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
mcard
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
mcard
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
{
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
{
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
}
}
if
(
ptuner
->
value
&&
!
(
mcard
->
current
.
location
&
location
))
{
if
(
tuner_limit
->
value
&&
!
(
mcard
->
current
.
location
&
location
))
{
pduel
->
restore_assumes
();
pduel
->
restore_assumes
();
return
FALSE
;
return
FALSE
;
}
}
...
@@ -2746,14 +2746,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
...
@@ -2746,14 +2746,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
for
(
auto
&
pm
:
mg
->
container
)
{
for
(
auto
&
pm
:
mg
->
container
)
{
if
(
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
if
(
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
continue
;
continue
;
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
target
)
{
if
(
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
continue
;
continue
;
}
}
if
(
ptuner
->
value
&&
!
(
pm
->
current
.
location
&
location
))
if
(
tuner_limit
->
value
&&
!
(
pm
->
current
.
location
&
location
))
continue
;
continue
;
}
}
if
(
pcheck
)
if
(
pcheck
)
...
@@ -2767,14 +2767,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
...
@@ -2767,14 +2767,14 @@ int32 field::check_tuner_material(card* pcard, card* tuner, int32 findex1, int32
}
}
}
else
{
}
else
{
card_set
cv
;
card_set
cv
;
get_synchro_material
(
playerid
,
&
cv
,
ptuner
);
get_synchro_material
(
playerid
,
&
cv
,
tuner_limit
);
for
(
auto
&
pm
:
cv
)
{
for
(
auto
&
pm
:
cv
)
{
if
(
!
pm
||
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
if
(
!
pm
||
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
continue
;
continue
;
if
(
ptuner
&&
ptuner
->
target
)
{
if
(
tuner_limit
&&
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
continue
;
continue
;
}
}
if
(
pcheck
)
if
(
pcheck
)
...
...
field.h
View file @
433b3131
...
@@ -473,7 +473,7 @@ public:
...
@@ -473,7 +473,7 @@ public:
void
attack_all_target_check
();
void
attack_all_target_check
();
int32
get_must_material_list
(
uint8
playerid
,
uint32
limit
,
card_set
*
must_list
);
int32
get_must_material_list
(
uint8
playerid
,
uint32
limit
,
card_set
*
must_list
);
int32
check_must_material
(
group
*
mg
,
uint8
playerid
,
uint32
limit
);
int32
check_must_material
(
group
*
mg
,
uint8
playerid
,
uint32
limit
);
void
get_synchro_material
(
uint8
playerid
,
card_set
*
material
,
effect
*
ptuner
=
nullptr
);
void
get_synchro_material
(
uint8
playerid
,
card_set
*
material
,
effect
*
tuner_limit
=
nullptr
);
int32
check_synchro_material
(
card
*
pcard
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
);
int32
check_synchro_material
(
card
*
pcard
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
);
int32
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
);
int32
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
,
int32
max
,
card
*
smat
,
group
*
mg
);
int32
check_other_synchro_material
(
const
card_vector
&
nsyn
,
int32
lv
,
int32
min
,
int32
max
,
int32
mcount
);
int32
check_other_synchro_material
(
const
card_vector
&
nsyn
,
int32
lv
,
int32
min
,
int32
max
,
int32
mcount
);
...
...
operations.cpp
View file @
433b3131
...
@@ -5352,12 +5352,12 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
...
@@ -5352,12 +5352,12 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
}
}
case
3
:
{
case
3
:
{
card
*
tuner
=
core
.
limit_tuner
;
card
*
tuner
=
core
.
limit_tuner
;
effect
*
ptuner
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
effect
*
tuner_limit
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
if
(
ptuner
&&
ptuner
->
is_flag
(
EFFECT_FLAG_SPSUM_PARAM
))
{
if
(
tuner_limit
&&
tuner_limit
->
is_flag
(
EFFECT_FLAG_SPSUM_PARAM
))
{
if
(
ptuner
->
s_range
&&
ptuner
->
s_range
>
min
)
if
(
tuner_limit
->
s_range
&&
tuner_limit
->
s_range
>
min
)
min
=
ptuner
->
s_range
;
min
=
tuner_limit
->
s_range
;
if
(
ptuner
->
o_range
&&
ptuner
->
o_range
<
max
)
if
(
tuner_limit
->
o_range
&&
tuner_limit
->
o_range
<
max
)
max
=
ptuner
->
o_range
;
max
=
tuner_limit
->
o_range
;
core
.
units
.
begin
()
->
arg2
=
min
+
(
max
<<
16
);
core
.
units
.
begin
()
->
arg2
=
min
+
(
max
<<
16
);
}
}
int32
mzone_limit
=
get_mzone_limit
(
playerid
,
playerid
,
LOCATION_REASON_TOFIELD
);
int32
mzone_limit
=
get_mzone_limit
(
playerid
,
playerid
,
LOCATION_REASON_TOFIELD
);
...
@@ -5398,10 +5398,10 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
...
@@ -5398,10 +5398,10 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
case
4
:
{
case
4
:
{
card
*
tuner
=
core
.
limit_tuner
;
card
*
tuner
=
core
.
limit_tuner
;
int32
location
=
LOCATION_MZONE
;
int32
location
=
LOCATION_MZONE
;
effect
*
ptuner
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
effect
*
tuner_limit
=
tuner
->
is_affected_by_effect
(
EFFECT_TUNER_MATERIAL_LIMIT
);
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
value
)
if
(
tuner_limit
->
value
)
location
=
ptuner
->
value
;
location
=
tuner_limit
->
value
;
}
}
effect
*
pcheck
=
tuner
->
is_affected_by_effect
(
EFFECT_SYNCHRO_CHECK
);
effect
*
pcheck
=
tuner
->
is_affected_by_effect
(
EFFECT_SYNCHRO_CHECK
);
core
.
must_select_cards
.
clear
();
core
.
must_select_cards
.
clear
();
...
@@ -5427,14 +5427,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
...
@@ -5427,14 +5427,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
for
(
auto
&
pm
:
mg
->
container
)
{
for
(
auto
&
pm
:
mg
->
container
)
{
if
(
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
if
(
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
continue
;
continue
;
if
(
ptuner
)
{
if
(
tuner_limit
)
{
if
(
ptuner
->
target
)
{
if
(
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
continue
;
continue
;
}
}
if
(
ptuner
->
value
&&
!
(
pm
->
current
.
location
&
location
))
if
(
tuner_limit
->
value
&&
!
(
pm
->
current
.
location
&
location
))
continue
;
continue
;
}
}
if
(
pcheck
)
if
(
pcheck
)
...
@@ -5448,14 +5448,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
...
@@ -5448,14 +5448,14 @@ int32 field::select_synchro_material(int16 step, uint8 playerid, card* pcard, in
}
}
}
else
{
}
else
{
card_set
cv
;
card_set
cv
;
get_synchro_material
(
playerid
,
&
cv
,
ptuner
);
get_synchro_material
(
playerid
,
&
cv
,
tuner_limit
);
for
(
auto
&
pm
:
cv
)
{
for
(
auto
&
pm
:
cv
)
{
if
(
!
pm
||
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
if
(
!
pm
||
pm
==
tuner
||
pm
==
smat
||
must_list
.
find
(
pm
)
!=
must_list
.
end
()
||
!
pm
->
is_can_be_synchro_material
(
pcard
,
tuner
))
continue
;
continue
;
if
(
ptuner
&&
ptuner
->
target
)
{
if
(
tuner_limit
&&
tuner_limit
->
target
)
{
pduel
->
lua
->
add_param
(
ptuner
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
tuner_limit
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pm
,
PARAM_TYPE_CARD
);
if
(
!
pduel
->
lua
->
get_function_value
(
ptuner
->
target
,
2
))
if
(
!
pduel
->
lua
->
get_function_value
(
tuner_limit
->
target
,
2
))
continue
;
continue
;
}
}
if
(
pcheck
)
if
(
pcheck
)
...
...
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