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
b94f0ed9
Commit
b94f0ed9
authored
May 27, 2019
by
DailyShana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix special summon count
parent
92e8dde0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
25 deletions
+23
-25
processor.cpp
processor.cpp
+23
-25
No files found.
processor.cpp
View file @
b94f0ed9
...
@@ -4342,7 +4342,7 @@ int32 field::add_chain(uint16 step) {
...
@@ -4342,7 +4342,7 @@ int32 field::add_chain(uint16 step) {
set_spsummon_counter
(
clit
.
triggering_player
,
true
,
true
);
set_spsummon_counter
(
clit
.
triggering_player
,
true
,
true
);
if
(
clit
.
opinfos
[
0x200
].
op_player
==
PLAYER_ALL
)
if
(
clit
.
opinfos
[
0x200
].
op_player
==
PLAYER_ALL
)
set_spsummon_counter
(
1
-
clit
.
triggering_player
,
true
,
true
);
set_spsummon_counter
(
1
-
clit
.
triggering_player
,
true
,
true
);
if
(
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
&&
peffect
->
is_flag
(
EFFECT_FLAG_CARD_TARGET
)
)
{
if
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
{
auto
&
optarget
=
clit
.
opinfos
[
0x200
];
auto
&
optarget
=
clit
.
opinfos
[
0x200
];
if
(
optarget
.
op_cards
)
{
if
(
optarget
.
op_cards
)
{
if
(
optarget
.
op_player
==
PLAYER_ALL
)
{
if
(
optarget
.
op_player
==
PLAYER_ALL
)
{
...
@@ -4588,32 +4588,30 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
...
@@ -4588,32 +4588,30 @@ int32 field::solve_chain(uint16 step, uint32 chainend_arg1, uint32 chainend_arg2
if
(
cait
->
opinfos
[
0x200
].
op_player
==
PLAYER_ALL
&&
core
.
spsummon_state_count_tmp
[
1
-
cait
->
triggering_player
]
==
core
.
spsummon_state_count
[
1
-
cait
->
triggering_player
])
if
(
cait
->
opinfos
[
0x200
].
op_player
==
PLAYER_ALL
&&
core
.
spsummon_state_count_tmp
[
1
-
cait
->
triggering_player
]
==
core
.
spsummon_state_count
[
1
-
cait
->
triggering_player
])
set_spsummon_counter
(
1
-
cait
->
triggering_player
);
set_spsummon_counter
(
1
-
cait
->
triggering_player
);
//sometimes it may add twice, only works for once per turn
//sometimes it may add twice, only works for once per turn
if
(
cait
->
triggering_effect
->
is_flag
(
EFFECT_FLAG_CARD_TARGET
))
{
auto
&
optarget
=
cait
->
opinfos
[
0x200
];
auto
&
optarget
=
cait
->
opinfos
[
0x200
];
if
(
optarget
.
op_cards
)
{
if
(
optarget
.
op_cards
)
{
if
(
optarget
.
op_player
==
PLAYER_ALL
)
{
if
(
optarget
.
op_player
==
PLAYER_ALL
)
{
uint32
sumplayer
=
optarget
.
op_param
;
uint32
sumplayer
=
optarget
.
op_param
;
if
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
{
if
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
{
auto
opit
=
optarget
.
op_cards
->
container
.
begin
();
if
((
*
opit
)
->
spsummon_code
)
core
.
spsummon_once_map
[
sumplayer
][(
*
opit
)
->
spsummon_code
]
++
;
++
opit
;
if
((
*
opit
)
->
spsummon_code
)
core
.
spsummon_once_map
[
1
-
sumplayer
][(
*
opit
)
->
spsummon_code
]
++
;
}
auto
opit
=
optarget
.
op_cards
->
container
.
begin
();
auto
opit
=
optarget
.
op_cards
->
container
.
begin
();
check_card_counter
(
*
opit
,
3
,
sumplayer
);
if
((
*
opit
)
->
spsummon_code
)
core
.
spsummon_once_map
[
sumplayer
][(
*
opit
)
->
spsummon_code
]
++
;
++
opit
;
++
opit
;
check_card_counter
(
*
opit
,
3
,
1
-
sumplayer
);
if
((
*
opit
)
->
spsummon_code
)
}
else
{
core
.
spsummon_once_map
[
1
-
sumplayer
][(
*
opit
)
->
spsummon_code
]
++
;
uint32
sumplayer
=
cait
->
triggering_player
;
}
if
(
optarget
.
op_player
==
1
)
auto
opit
=
optarget
.
op_cards
->
container
.
begin
();
sumplayer
=
1
-
sumplayer
;
check_card_counter
(
*
opit
,
3
,
sumplayer
);
for
(
auto
&
ptarget
:
optarget
.
op_cards
->
container
)
{
++
opit
;
if
((
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
&&
ptarget
->
spsummon_code
)
check_card_counter
(
*
opit
,
3
,
1
-
sumplayer
);
core
.
spsummon_once_map
[
sumplayer
][
ptarget
->
spsummon_code
]
++
;
}
else
{
check_card_counter
(
ptarget
,
3
,
sumplayer
);
uint32
sumplayer
=
cait
->
triggering_player
;
}
if
(
optarget
.
op_player
==
1
)
sumplayer
=
1
-
sumplayer
;
for
(
auto
&
ptarget
:
optarget
.
op_cards
->
container
)
{
if
((
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_ONCE
)
&&
ptarget
->
spsummon_code
)
core
.
spsummon_once_map
[
sumplayer
][
ptarget
->
spsummon_code
]
++
;
check_card_counter
(
ptarget
,
3
,
sumplayer
);
}
}
}
}
}
}
...
...
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