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
614ee807
Commit
614ee807
authored
Sep 29, 2024
by
Chen Bill
Committed by
GitHub
Sep 29, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update card::is_affected_by_effect (#634)
parent
2b5eac4d
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
24 deletions
+22
-24
card.cpp
card.cpp
+22
-24
No files found.
card.cpp
View file @
614ee807
...
...
@@ -2947,33 +2947,32 @@ void card::filter_spsummon_procedure_g(uint8 playerid, effect_set* peset) {
}
// find an effect with code which affects this
effect
*
card
::
is_affected_by_effect
(
int32
code
)
{
effect
*
peffect
=
nullptr
;
auto
rg
=
single_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
(
!
peffect
->
is_flag
(
EFFECT_FLAG_SINGLE_RANGE
)
||
is_affect_by_effect
(
peffect
)))
return
peffect
;
}
for
(
auto
&
pcard
:
equiping_cards
)
{
rg
=
pcard
->
equip_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
return
peffect
;
}
}
for
(
auto
&
pcard
:
effect_target_owner
)
{
rg
=
pcard
->
target_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
peffect
->
is_target
(
this
)
&&
is_affect_by_effect
(
peffect
))
return
peffect
;
}
}
for
(
auto
&
pcard
:
xyz_materials
)
{
rg
=
pcard
->
xmaterial_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
...
...
@@ -2981,8 +2980,8 @@ effect* card::is_affected_by_effect(int32 code) {
}
}
rg
=
pduel
->
game_field
->
effects
.
aura_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_PLAYER_TARGET
)
&&
peffect
->
is_target
(
this
)
&&
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
))
return
peffect
;
...
...
@@ -2990,34 +2989,33 @@ effect* card::is_affected_by_effect(int32 code) {
return
nullptr
;
}
effect
*
card
::
is_affected_by_effect
(
int32
code
,
card
*
target
)
{
effect
*
peffect
=
nullptr
;
auto
rg
=
single_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
(
!
peffect
->
is_flag
(
EFFECT_FLAG_SINGLE_RANGE
)
||
is_affect_by_effect
(
peffect
))
&&
peffect
->
get_value
(
target
))
return
peffect
;
}
for
(
auto
&
pcard
:
equiping_cards
)
{
rg
=
pcard
->
equip_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
return
peffect
;
}
}
for
(
auto
&
pcard
:
effect_target_owner
)
{
rg
=
pcard
->
target_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
is_available
()
&&
peffect
->
is_target
(
this
)
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
return
peffect
;
}
}
for
(
auto
&
pcard
:
xyz_materials
)
{
rg
=
pcard
->
xmaterial_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
peffect
->
type
&
EFFECT_TYPE_FIELD
)
continue
;
if
(
peffect
->
is_available
()
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
...
...
@@ -3025,8 +3023,8 @@ effect* card::is_affected_by_effect(int32 code, card* target) {
}
}
rg
=
pduel
->
game_field
->
effects
.
aura_effect
.
equal_range
(
code
);
for
(
;
rg
.
first
!=
rg
.
second
;
++
rg
.
firs
t
)
{
peffect
=
rg
.
firs
t
->
second
;
for
(
auto
it
=
rg
.
first
;
it
!=
rg
.
second
;
++
i
t
)
{
auto
peffect
=
i
t
->
second
;
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_PLAYER_TARGET
)
&&
peffect
->
is_available
()
&&
peffect
->
is_target
(
this
)
&&
is_affect_by_effect
(
peffect
)
&&
peffect
->
get_value
(
target
))
return
peffect
;
...
...
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