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
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
MyCard
ygopro-core
Commits
887d70fa
Commit
887d70fa
authored
Jun 21, 2020
by
DailyShana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix normal summon with specified proc
close #321
parent
182e619a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
36 deletions
+10
-36
card.cpp
card.cpp
+2
-2
operations.cpp
operations.cpp
+8
-34
No files found.
card.cpp
View file @
887d70fa
...
@@ -3012,7 +3012,7 @@ int32 card::is_can_be_summoned(uint8 playerid, uint8 ignore_count, effect* peffe
...
@@ -3012,7 +3012,7 @@ int32 card::is_can_be_summoned(uint8 playerid, uint8 ignore_count, effect* peffe
effect_set
proc
;
effect_set
proc
;
int32
res
=
filter_summon_procedure
(
playerid
,
&
proc
,
ignore_count
,
min_tribute
,
zone
);
int32
res
=
filter_summon_procedure
(
playerid
,
&
proc
,
ignore_count
,
min_tribute
,
zone
);
if
(
peffect
)
{
if
(
peffect
)
{
if
(
res
<
0
||
!
pduel
->
game_field
->
is_player_can_summon
(
peffect
->
get_value
(),
playerid
,
this
,
playerid
))
{
if
(
res
<
0
||
!
check_summon_procedure
(
peffect
,
playerid
,
ignore_count
,
min_tribute
,
zone
))
{
pduel
->
game_field
->
restore_lp_cost
();
pduel
->
game_field
->
restore_lp_cost
();
return
FALSE
;
return
FALSE
;
}
}
...
@@ -3210,7 +3210,7 @@ int32 card::is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect
...
@@ -3210,7 +3210,7 @@ int32 card::is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect
effect_set
eset
;
effect_set
eset
;
int32
res
=
filter_set_procedure
(
playerid
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
int32
res
=
filter_set_procedure
(
playerid
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
if
(
peffect
)
{
if
(
peffect
)
{
if
(
res
<
0
||
!
pduel
->
game_field
->
is_player_can_mset
(
peffect
->
get_value
(),
playerid
,
this
,
playerid
))
{
if
(
res
<
0
||
!
check_set_procedure
(
peffect
,
playerid
,
ignore_count
,
min_tribute
,
zone
))
{
pduel
->
game_field
->
restore_lp_cost
();
pduel
->
game_field
->
restore_lp_cost
();
return
FALSE
;
return
FALSE
;
}
}
...
...
operations.cpp
View file @
887d70fa
...
@@ -1554,7 +1554,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
...
@@ -1554,7 +1554,7 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
effect_set
eset
;
effect_set
eset
;
int32
res
=
target
->
filter_summon_procedure
(
sumplayer
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
int32
res
=
target
->
filter_summon_procedure
(
sumplayer
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
if
(
proc
)
{
if
(
proc
)
{
if
(
res
<
0
)
if
(
res
<
0
||
!
target
->
check_summon_procedure
(
proc
,
sumplayer
,
ignore_count
,
min_tribute
,
zone
)
)
return
TRUE
;
return
TRUE
;
}
else
{
}
else
{
if
(
res
==
-
2
)
if
(
res
==
-
2
)
...
@@ -1595,23 +1595,10 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
...
@@ -1595,23 +1595,10 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
core
.
units
.
begin
()
->
ptr1
=
0
;
core
.
units
.
begin
()
->
ptr1
=
0
;
return
FALSE
;
return
FALSE
;
}
}
if
(
proc
)
{
if
(
!
proc
)
{
core
.
units
.
begin
()
->
step
=
3
;
proc
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
if
(
!
ignore_count
&&
!
core
.
extra_summon
[
sumplayer
])
{
core
.
units
.
begin
()
->
peffect
=
proc
;
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
std
::
vector
<
int32
>
retval
;
eset
[
i
]
->
get_value
(
target
,
0
,
&
retval
);
if
(
retval
.
size
()
<
2
)
{
core
.
units
.
begin
()
->
ptr1
=
eset
[
i
];
return
FALSE
;
}
}
}
core
.
units
.
begin
()
->
ptr1
=
0
;
return
FALSE
;
}
}
effect
*
proc
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
core
.
units
.
begin
()
->
peffect
=
proc
;
core
.
select_effects
.
clear
();
core
.
select_effects
.
clear
();
core
.
select_options
.
clear
();
core
.
select_options
.
clear
();
if
(
ignore_count
||
core
.
summon_count
[
sumplayer
]
<
get_summon_count_limit
(
sumplayer
))
{
if
(
ignore_count
||
core
.
summon_count
[
sumplayer
]
<
get_summon_count_limit
(
sumplayer
))
{
...
@@ -2137,7 +2124,7 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
...
@@ -2137,7 +2124,7 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
effect_set
eset
;
effect_set
eset
;
int32
res
=
target
->
filter_set_procedure
(
setplayer
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
int32
res
=
target
->
filter_set_procedure
(
setplayer
,
&
eset
,
ignore_count
,
min_tribute
,
zone
);
if
(
proc
)
{
if
(
proc
)
{
if
(
res
<
0
)
if
(
res
<
0
||
!
target
->
check_set_procedure
(
proc
,
setplayer
,
ignore_count
,
min_tribute
,
zone
)
)
return
TRUE
;
return
TRUE
;
}
else
{
}
else
{
if
(
res
==
-
2
)
if
(
res
==
-
2
)
...
@@ -2163,23 +2150,10 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
...
@@ -2163,23 +2150,10 @@ int32 field::mset(uint16 step, uint8 setplayer, card* target, effect* proc, uint
case
1
:
{
case
1
:
{
effect_set
eset
;
effect_set
eset
;
target
->
filter_effect
(
EFFECT_EXTRA_SET_COUNT
,
&
eset
);
target
->
filter_effect
(
EFFECT_EXTRA_SET_COUNT
,
&
eset
);
if
(
proc
)
{
if
(
!
proc
)
{
core
.
units
.
begin
()
->
step
=
3
;
proc
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
if
(
!
ignore_count
&&
!
core
.
extra_summon
[
setplayer
])
{
core
.
units
.
begin
()
->
peffect
=
proc
;
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
std
::
vector
<
int32
>
retval
;
eset
[
i
]
->
get_value
(
target
,
0
,
&
retval
);
if
(
retval
.
size
()
<
2
)
{
core
.
units
.
begin
()
->
ptr1
=
eset
[
i
];
return
FALSE
;
}
}
}
core
.
units
.
begin
()
->
ptr1
=
0
;
return
FALSE
;
}
}
effect
*
proc
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
core
.
units
.
begin
()
->
peffect
=
proc
;
core
.
select_effects
.
clear
();
core
.
select_effects
.
clear
();
core
.
select_options
.
clear
();
core
.
select_options
.
clear
();
if
(
ignore_count
||
core
.
summon_count
[
setplayer
]
<
get_summon_count_limit
(
setplayer
))
{
if
(
ignore_count
||
core
.
summon_count
[
setplayer
]
<
get_summon_count_limit
(
setplayer
))
{
...
...
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