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
14759d2e
Commit
14759d2e
authored
May 03, 2021
by
salix5
Committed by
GitHub
May 03, 2021
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #377 from Fluorohydride/patch-solve-chain
fix self-destroy & activation of the card
parents
12c0bc27
68d39fb2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
8 deletions
+19
-8
operations.cpp
operations.cpp
+0
-1
processor.cpp
processor.cpp
+19
-7
No files found.
operations.cpp
View file @
14759d2e
...
...
@@ -194,7 +194,6 @@ void field::special_summon_complete(effect* reason_effect, uint8 reason_player)
group
*
ng
=
pduel
->
new_group
();
ng
->
container
.
swap
(
core
.
special_summoning
);
ng
->
is_readonly
=
TRUE
;
//core.special_summoning.clear();
add_process
(
PROCESSOR_SPSUMMON
,
1
,
reason_effect
,
ng
,
reason_player
,
0
);
}
void
field
::
destroy
(
card_set
*
targets
,
effect
*
reason_effect
,
uint32
reason
,
uint32
reason_player
,
uint32
playerid
,
uint32
destination
,
uint32
sequence
)
{
...
...
processor.cpp
View file @
14759d2e
...
...
@@ -766,7 +766,7 @@ int32 field::execute_cost(uint16 step, effect * triggering_effect, uint8 trigger
if
(
core
.
shuffle_deck_check
[
1
])
shuffle
(
1
,
LOCATION_DECK
);
}
core
.
shuffle_check_disabled
=
core
.
units
.
begin
()
->
arg2
;
core
.
shuffle_check_disabled
=
(
uint8
)
core
.
units
.
begin
()
->
arg2
;
return
TRUE
;
}
return
FALSE
;
...
...
@@ -822,7 +822,7 @@ int32 field::execute_operation(uint16 step, effect * triggering_effect, uint8 tr
//cost[0].amount = 0;
//cost[1].amount = 0;
}
core
.
shuffle_check_disabled
=
core
.
units
.
begin
()
->
arg2
;
core
.
shuffle_check_disabled
=
(
uint8
)
core
.
units
.
begin
()
->
arg2
;
return
TRUE
;
}
return
FALSE
;
...
...
@@ -875,7 +875,7 @@ int32 field::execute_target(uint16 step, effect * triggering_effect, uint8 trigg
if
(
core
.
shuffle_deck_check
[
1
])
shuffle
(
1
,
LOCATION_DECK
);
}
core
.
shuffle_check_disabled
=
core
.
units
.
begin
()
->
arg2
;
core
.
shuffle_check_disabled
=
(
uint8
)
core
.
units
.
begin
()
->
arg2
;
return
TRUE
;
}
return
FALSE
;
...
...
@@ -4304,6 +4304,10 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
case
2
:
{
effect
*
peffect
=
cait
->
triggering_effect
;
card
*
pcard
=
peffect
->
get_handler
();
if
((
cait
->
flag
&
CHAIN_CONTINUOUS_CARD
)
&&
!
pcard
->
is_has_relation
(
*
cait
)){
core
.
units
.
begin
()
->
step
=
3
;
return
FALSE
;
}
if
((
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
&&
pcard
->
is_has_relation
(
*
cait
)
&&
!
cait
->
replace_op
)
{
pcard
->
enable_field_effect
(
true
);
if
(
core
.
duel_rule
<=
2
)
{
...
...
@@ -4329,29 +4333,37 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
return
FALSE
;
}
}
return
FALSE
;
}
case
3
:
{
effect
*
peffect
=
cait
->
triggering_effect
;
card
*
pcard
=
peffect
->
get_handler
();
if
((
cait
->
flag
&
CHAIN_CONTINUOUS_CARD
)
&&
!
pcard
->
is_has_relation
(
*
cait
)){
return
FALSE
;
}
if
(
cait
->
replace_op
)
{
core
.
units
.
begin
()
->
arg4
=
cait
->
triggering_effect
->
operation
;
cait
->
triggering_effect
->
operation
=
cait
->
replace_op
;
}
else
core
.
units
.
begin
()
->
arg4
=
0
;
if
((
cait
->
flag
&
CHAIN_CONTINUOUS_CARD
)
&&
!
pcard
->
is_has_relation
(
*
cait
))
return
FALSE
;
if
(
cait
->
triggering_effect
->
operation
)
{
core
.
sub_solving_event
.
push_back
(
cait
->
evt
);
add_process
(
PROCESSOR_EXECUTE_OPERATION
,
0
,
cait
->
triggering_effect
,
0
,
cait
->
triggering_player
,
0
);
}
return
FALSE
;
}
case
3
:
{
case
4
:
{
// clean up when the resolution ends
effect
*
peffect
=
cait
->
triggering_effect
;
if
(
core
.
units
.
begin
()
->
arg4
)
{
peffect
->
operation
=
(
int32
)
core
.
units
.
begin
()
->
arg4
;
core
.
units
.
begin
()
->
arg4
=
0
;
}
core
.
special_summoning
.
clear
();
core
.
equiping_cards
.
clear
();
return
FALSE
;
}
case
4
:
{
case
5
:
{
core
.
chain_solving
=
FALSE
;
if
(
core
.
delayed_continuous_tp
.
size
())
{
core
.
conti_player
=
infos
.
turn_player
;
...
...
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