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
869e34cd
Commit
869e34cd
authored
Jan 13, 2020
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro-core
parents
b644fa90
3028b766
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
41 deletions
+37
-41
operations.cpp
operations.cpp
+3
-7
processor.cpp
processor.cpp
+34
-34
No files found.
operations.cpp
View file @
869e34cd
...
...
@@ -2352,7 +2352,7 @@ int32 field::sset_g(uint16 step, uint8 setplayer, uint8 toplayer, group* ptarget
card_set
*
set_cards
=
new
card_set
;
core
.
operated_set
.
clear
();
for
(
auto
&
target
:
ptarget
->
container
)
{
if
((
!
(
target
->
data
.
type
&
TYPE_FIELD
)
&&
get_useable_count
(
NULL
,
toplayer
,
LOCATION_SZONE
,
setplayer
,
LOCATION_REASON_TOFIELD
)
<=
0
)
if
((
!
(
target
->
data
.
type
&
TYPE_FIELD
)
&&
get_useable_count
(
target
,
toplayer
,
LOCATION_SZONE
,
setplayer
,
LOCATION_REASON_TOFIELD
)
<=
0
)
||
(
target
->
data
.
type
&
TYPE_MONSTER
&&
!
target
->
is_affected_by_effect
(
EFFECT_MONSTER_SSET
))
||
(
target
->
current
.
location
==
LOCATION_SZONE
)
||
(
!
is_player_can_sset
(
setplayer
,
target
))
...
...
@@ -2387,16 +2387,12 @@ int32 field::sset_g(uint16 step, uint8 setplayer, uint8 toplayer, group* ptarget
case
1
:
{
card_set
*
set_cards
=
(
card_set
*
)
ptarget
;
card
*
target
=
*
set_cards
->
begin
();
uint32
flag
;
int32
ct
=
get_useable_count
(
target
,
toplayer
,
LOCATION_SZONE
,
setplayer
,
LOCATION_REASON_TOFIELD
,
0xff
,
&
flag
);
if
(
ct
<=
0
)
{
core
.
units
.
begin
()
->
step
=
2
;
return
FALSE
;
}
if
(
target
->
data
.
type
&
TYPE_FIELD
)
{
returns
.
bvalue
[
2
]
=
5
;
return
FALSE
;
}
uint32
flag
;
get_useable_count
(
target
,
toplayer
,
LOCATION_SZONE
,
setplayer
,
LOCATION_REASON_TOFIELD
,
0xff
,
&
flag
);
flag
|=
core
.
set_group_used_zones
;
if
(
setplayer
==
toplayer
)
{
flag
=
((
flag
&
0xff
)
<<
8
)
|
0xffff00ff
;
...
...
processor.cpp
View file @
869e34cd
...
...
@@ -1606,41 +1606,41 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
chain
newchain
;
if
(
core
.
ignition_priority_chains
.
size
())
core
.
select_chains
.
swap
(
core
.
ignition_priority_chains
);
for
(
auto
evit
=
core
.
point_event
.
begin
();
evit
!=
core
.
instant_event
.
end
();
++
evit
)
{
if
(
evit
==
core
.
point_event
.
end
())
evit
=
core
.
instant_event
.
begin
(
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
evit
->
event_code
);
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
peffect
->
set_activate_location
();
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
card
*
phandler
=
peffect
->
get_handler
()
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
evi
t
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
set_triggering_state
(
phandler
)
;
newchain
.
triggering_player
=
priority
;
core
.
select_chains
.
push_back
(
newchain
);
for
(
const
auto
*
ev_list
:
{
&
core
.
point_event
,
&
core
.
instant_event
}
)
{
for
(
const
auto
&
ev
:
*
ev_list
)
{
auto
pr
=
effects
.
activate_effect
.
equal_range
(
ev
.
event_code
);
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
peffect
->
set_activate_location
()
;
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
ev
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
ev
;
newchain
.
triggering_effect
=
peffec
t
;
newchain
.
set_triggering_state
(
phandler
)
;
newchain
.
triggering_player
=
priority
;
core
.
select_chains
.
push_back
(
newchain
)
;
}
}
}
pr
=
effects
.
quick_o_effect
.
equal_range
(
evit
->
event_code
);
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
peffect
->
set_activate_location
();
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
card
*
phandler
=
peffect
->
get_handler
()
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
evi
t
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
set_triggering_state
(
phandler
)
;
newchain
.
triggering_player
=
priority
;
core
.
select_chains
.
push_back
(
newchain
);
core
.
delayed_quick_tmp
.
erase
(
std
::
make_pair
(
peffect
,
*
evit
));
core
.
delayed_quick_break
.
erase
(
std
::
make_pair
(
peffect
,
*
evit
));
pr
=
effects
.
quick_o_effect
.
equal_range
(
ev
.
event_code
);
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
peffect
->
set_activate_location
()
;
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
ev
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
ev
;
newchain
.
triggering_effect
=
peffec
t
;
newchain
.
set_triggering_state
(
phandler
)
;
newchain
.
triggering_player
=
priority
;
core
.
select_chains
.
push_back
(
newchain
)
;
core
.
delayed_quick_tmp
.
erase
(
std
::
make_pair
(
peffect
,
ev
)
);
core
.
delayed_quick_break
.
erase
(
std
::
make_pair
(
peffect
,
ev
));
}
}
}
}
...
...
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