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
72a6cfce
Commit
72a6cfce
authored
Mar 07, 2018
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tweak
parent
d5586f15
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
117 additions
and
85 deletions
+117
-85
card.cpp
card.cpp
+6
-5
field.cpp
field.cpp
+9
-8
libcard.cpp
libcard.cpp
+2
-1
operations.cpp
operations.cpp
+12
-10
processor.cpp
processor.cpp
+88
-61
No files found.
card.cpp
View file @
72a6cfce
...
...
@@ -2591,9 +2591,9 @@ void card::filter_spsummon_procedure(uint8 playerid, effect_set* peset, uint32 s
auto
pr
=
field_effect
.
equal_range
(
EFFECT_SPSUMMON_PROC
);
uint8
toplayer
;
uint8
topos
;
effect
*
peffect
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_flag
(
EFFECT_FLAG_SPSUM_PARAM
))
{
topos
=
(
uint8
)
peffect
->
s_range
;
if
(
peffect
->
o_range
==
0
)
...
...
@@ -2618,8 +2618,9 @@ void card::filter_spsummon_procedure(uint8 playerid, effect_set* peset, uint32 s
}
void
card
::
filter_spsummon_procedure_g
(
uint8
playerid
,
effect_set
*
peset
)
{
auto
pr
=
field_effect
.
equal_range
(
EFFECT_SPSUMMON_PROC_G
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
!
peffect
->
is_available
()
||
!
peffect
->
check_count_limit
(
playerid
))
continue
;
if
(
current
.
controler
!=
playerid
&&
!
peffect
->
is_flag
(
EFFECT_FLAG_BOTH_SIDE
))
...
...
field.cpp
View file @
72a6cfce
...
...
@@ -2187,8 +2187,9 @@ uint32 field::get_field_counter(uint8 self, uint8 s, uint8 o, uint16 countertype
}
int32
field
::
effect_replace_check
(
uint32
code
,
const
tevent
&
e
)
{
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
code
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
return
TRUE
;
}
...
...
@@ -3160,7 +3161,6 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
if
((
pcard
&&
pcard
->
get_counter
(
countertype
)
>=
count
)
||
(
!
pcard
&&
get_field_counter
(
playerid
,
s
,
o
,
countertype
)
>=
count
))
return
TRUE
;
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
effect
*
peffect
;
tevent
e
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
...
...
@@ -3168,8 +3168,9 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
e
.
reason
=
reason
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
playerid
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
return
TRUE
;
}
...
...
@@ -3179,7 +3180,6 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card * pcard, uin
if
((
pcard
&&
pcard
->
xyz_materials
.
size
()
>=
min
)
||
(
!
pcard
&&
get_overlay_count
(
playerid
,
s
,
o
)
>=
min
))
return
TRUE
;
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
effect
*
peffect
;
tevent
e
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
...
...
@@ -3187,8 +3187,9 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card * pcard, uin
e
.
reason
=
reason
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
playerid
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
return
TRUE
;
}
...
...
libcard.cpp
View file @
72a6cfce
...
...
@@ -1360,8 +1360,9 @@ int32 scriptlib::card_check_activate_effect(lua_State *L) {
int32
copy_info
=
lua_toboolean
(
L
,
4
);
duel
*
pduel
=
pcard
->
pduel
;
tevent
pe
;
for
(
auto
eit
=
pcard
->
field_effect
.
begin
();
eit
!=
pcard
->
field_effect
.
end
();
++
eit
)
{
for
(
auto
eit
=
pcard
->
field_effect
.
begin
();
eit
!=
pcard
->
field_effect
.
end
();)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
((
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
&&
pduel
->
game_field
->
check_event_c
(
peffect
,
pduel
->
game_field
->
core
.
reason_player
,
neglect_con
,
neglect_cost
,
copy_info
,
&
pe
))
{
if
(
!
copy_info
||
(
peffect
->
code
==
EVENT_FREE_CHAIN
))
{
...
...
operations.cpp
View file @
72a6cfce
...
...
@@ -332,8 +332,9 @@ void field::operation_replace(int32 type, int32 step, group* targets) {
int32
is_destroy
=
(
type
==
EFFECT_DESTROY_REPLACE
)
?
TRUE
:
FALSE
;
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
type
);
std
::
vector
<
effect
*>
opp_effects
;
for
(
auto
it
=
pr
.
first
;
it
!=
pr
.
second
;
++
it
)
{
effect
*
reffect
=
it
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
reffect
=
eit
->
second
;
++
eit
;
if
(
reffect
->
get_handler_player
()
==
infos
.
turn_player
)
add_process
(
PROCESSOR_OPERATION_REPLACE
,
step
,
reffect
,
targets
,
is_destroy
,
0
);
else
...
...
@@ -623,8 +624,9 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
core
.
select_effects
.
push_back
(
0
);
}
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_LPCOST_REPLACE
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
{
core
.
select_options
.
push_back
(
peffect
->
description
);
core
.
select_effects
.
push_back
(
peffect
);
...
...
@@ -679,7 +681,6 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
core
.
select_effects
.
push_back
(
0
);
}
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
effect
*
peffect
;
tevent
e
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
...
...
@@ -687,8 +688,9 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
e
.
reason
=
reason
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
rplayer
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
{
core
.
select_options
.
push_back
(
peffect
->
description
);
core
.
select_effects
.
push_back
(
peffect
);
...
...
@@ -756,7 +758,6 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
core
.
select_effects
.
push_back
(
0
);
}
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
effect
*
peffect
;
tevent
e
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
...
...
@@ -764,8 +765,9 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
e
.
reason
=
reason
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
rplayer
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
{
core
.
select_options
.
push_back
(
peffect
->
description
);
core
.
select_effects
.
push_back
(
peffect
);
...
...
processor.cpp
View file @
72a6cfce
This diff is collapsed.
Click to expand it.
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