Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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-2pick
Commits
c9c5ad88
Commit
c9c5ad88
authored
Jan 31, 2018
by
Momobako
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of /root/7210
parents
cee28e97
b9b5e98b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
29 deletions
+23
-29
ocgcore/field.cpp
ocgcore/field.cpp
+23
-29
No files found.
ocgcore/field.cpp
View file @
c9c5ad88
...
@@ -1638,31 +1638,17 @@ int32 field::check_release_list(uint8 playerid, int32 count, int32 use_con, int3
...
@@ -1638,31 +1638,17 @@ int32 field::check_release_list(uint8 playerid, int32 count, int32 use_con, int3
// return: the max release count of mg or all monsters on field
// return: the max release count of mg or all monsters on field
int32
field
::
get_summon_release_list
(
card
*
target
,
card_set
*
release_list
,
card_set
*
ex_list
,
card_set
*
ex_list_sum
,
group
*
mg
,
uint32
ex
,
uint32
releasable
,
uint32
pos
)
{
int32
field
::
get_summon_release_list
(
card
*
target
,
card_set
*
release_list
,
card_set
*
ex_list
,
card_set
*
ex_list_sum
,
group
*
mg
,
uint32
ex
,
uint32
releasable
,
uint32
pos
)
{
uint8
p
=
target
->
current
.
controler
;
uint8
p
=
target
->
current
.
controler
;
uint32
rcount
=
0
;
card_set
ex_tribute
;
card_set
cset
;
effect_set
eset
;
effect_set
eset
;
target
->
filter_effect
(
EFFECT_ADD_EXTRA_TRIBUTE
,
&
eset
);
target
->
filter_effect
(
EFFECT_ADD_EXTRA_TRIBUTE
,
&
eset
);
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
for
(
int32
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
if
(
eset
[
i
]
->
get_value
()
&
pos
)
if
(
eset
[
i
]
->
get_value
()
&
pos
)
filter_inrange_cards
(
eset
[
i
],
&
cset
);
filter_inrange_cards
(
eset
[
i
],
&
ex_tribute
);
}
card_set
ex_tribute
;
for
(
auto
cit
=
cset
.
begin
();
cit
!=
cset
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
if
(
!
pcard
->
is_releasable_by_summon
(
p
,
target
))
continue
;
if
(
pcard
->
is_affected_by_effect
(
EFFECT_DOUBLE_TRIBUTE
,
target
))
pcard
->
release_param
=
2
;
else
pcard
->
release_param
=
1
;
rcount
+=
pcard
->
release_param
;
ex_tribute
.
insert
(
pcard
);
}
}
uint32
rcount
=
0
;
for
(
auto
cit
=
player
[
p
].
list_mzone
.
begin
();
cit
!=
player
[
p
].
list_mzone
.
end
();
++
cit
)
{
for
(
auto
cit
=
player
[
p
].
list_mzone
.
begin
();
cit
!=
player
[
p
].
list_mzone
.
end
();
++
cit
)
{
card
*
pcard
=
*
cit
;
card
*
pcard
=
*
cit
;
if
(
pcard
&&
((
releasable
>>
pcard
->
current
.
sequence
)
&
1
)
&&
pcard
->
is_releasable_by_summon
(
p
,
target
))
{
if
(
pcard
&&
((
releasable
>>
pcard
->
current
.
sequence
)
&
1
)
&&
pcard
->
is_releasable_by_summon
(
p
,
target
))
{
if
(
ex_tribute
.
find
(
pcard
)
!=
ex_tribute
.
end
())
continue
;
if
(
mg
&&
!
mg
->
has_card
(
pcard
))
if
(
mg
&&
!
mg
->
has_card
(
pcard
))
continue
;
continue
;
if
(
release_list
)
if
(
release_list
)
...
@@ -1679,17 +1665,19 @@ int32 field::get_summon_release_list(card* target, card_set* release_list, card_
...
@@ -1679,17 +1665,19 @@ int32 field::get_summon_release_list(card* target, card_set* release_list, card_
card
*
pcard
=
*
cit
;
card
*
pcard
=
*
cit
;
if
(
!
pcard
||
!
((
releasable
>>
(
pcard
->
current
.
sequence
+
16
))
&
1
)
||
!
pcard
->
is_releasable_by_summon
(
p
,
target
))
if
(
!
pcard
||
!
((
releasable
>>
(
pcard
->
current
.
sequence
+
16
))
&
1
)
||
!
pcard
->
is_releasable_by_summon
(
p
,
target
))
continue
;
continue
;
if
(
ex_tribute
.
find
(
pcard
)
!=
ex_tribute
.
end
())
continue
;
if
(
mg
&&
!
mg
->
has_card
(
pcard
))
if
(
mg
&&
!
mg
->
has_card
(
pcard
))
continue
;
continue
;
if
(
pcard
->
is_affected_by_effect
(
EFFECT_DOUBLE_TRIBUTE
,
target
))
pcard
->
release_param
=
2
;
else
pcard
->
release_param
=
1
;
if
(
ex
||
pcard
->
is_affected_by_effect
(
EFFECT_EXTRA_RELEASE
))
{
if
(
ex
||
pcard
->
is_affected_by_effect
(
EFFECT_EXTRA_RELEASE
))
{
if
(
ex_list
)
if
(
ex_list
)
ex_list
->
insert
(
pcard
);
ex_list
->
insert
(
pcard
);
if
(
pcard
->
is_affected_by_effect
(
EFFECT_DOUBLE_TRIBUTE
,
target
))
rcount
+=
pcard
->
release_param
;
pcard
->
release_param
=
2
;
}
else
if
(
ex_tribute
.
find
(
pcard
)
!=
ex_tribute
.
end
())
{
else
if
(
release_list
)
pcard
->
release_param
=
1
;
release_list
->
insert
(
pcard
)
;
rcount
+=
pcard
->
release_param
;
rcount
+=
pcard
->
release_param
;
}
else
{
}
else
{
effect
*
peffect
=
pcard
->
is_affected_by_effect
(
EFFECT_EXTRA_RELEASE_SUM
);
effect
*
peffect
=
pcard
->
is_affected_by_effect
(
EFFECT_EXTRA_RELEASE_SUM
);
...
@@ -1697,16 +1685,22 @@ int32 field::get_summon_release_list(card* target, card_set* release_list, card_
...
@@ -1697,16 +1685,22 @@ int32 field::get_summon_release_list(card* target, card_set* release_list, card_
continue
;
continue
;
if
(
ex_list_sum
)
if
(
ex_list_sum
)
ex_list_sum
->
insert
(
pcard
);
ex_list_sum
->
insert
(
pcard
);
if
(
pcard
->
is_affected_by_effect
(
EFFECT_DOUBLE_TRIBUTE
,
target
))
pcard
->
release_param
=
2
;
else
pcard
->
release_param
=
1
;
if
(
ex_sum_max
<
pcard
->
release_param
)
if
(
ex_sum_max
<
pcard
->
release_param
)
ex_sum_max
=
pcard
->
release_param
;
ex_sum_max
=
pcard
->
release_param
;
}
}
}
}
if
(
release_list
)
for
(
auto
cit
=
ex_tribute
.
begin
();
cit
!=
ex_tribute
.
end
();
++
cit
)
{
release_list
->
insert
(
ex_tribute
.
begin
(),
ex_tribute
.
end
());
card
*
pcard
=
*
cit
;
if
(
pcard
->
current
.
location
==
LOCATION_MZONE
||
!
pcard
->
is_releasable_by_summon
(
p
,
target
))
continue
;
if
(
release_list
)
release_list
->
insert
(
pcard
);
if
(
pcard
->
is_affected_by_effect
(
EFFECT_DOUBLE_TRIBUTE
,
target
))
pcard
->
release_param
=
2
;
else
pcard
->
release_param
=
1
;
rcount
+=
pcard
->
release_param
;
}
return
rcount
+
ex_sum_max
;
return
rcount
+
ex_sum_max
;
}
}
int32
field
::
get_summon_count_limit
(
uint8
playerid
)
{
int32
field
::
get_summon_count_limit
(
uint8
playerid
)
{
...
...
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