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
6d74aa5b
Commit
6d74aa5b
authored
Sep 04, 2017
by
Yuzurisa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
upd
parent
dbcdb0fb
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
9 deletions
+23
-9
ocgcore/card.cpp
ocgcore/card.cpp
+17
-5
ocgcore/card.h
ocgcore/card.h
+1
-1
ocgcore/libcard.cpp
ocgcore/libcard.cpp
+5
-3
No files found.
ocgcore/card.cpp
View file @
6d74aa5b
...
@@ -2124,7 +2124,7 @@ int32 card::destination_redirect(uint8 destination, uint32 reason) {
...
@@ -2124,7 +2124,7 @@ int32 card::destination_redirect(uint8 destination, uint32 reason) {
// cmit->second[0]: permanent
// cmit->second[0]: permanent
// cmit->second[1]: reset while negated
// cmit->second[1]: reset while negated
int32 card::add_counter(uint8 playerid, uint16 countertype, uint16 count, uint8 singly) {
int32 card::add_counter(uint8 playerid, uint16 countertype, uint16 count, uint8 singly) {
if
(
!
is_can_add_counter
(
playerid
,
countertype
,
count
,
singly
))
if(!is_can_add_counter(playerid, countertype, count, singly
, 0
))
return FALSE;
return FALSE;
uint16 cttype = countertype & ~COUNTER_NEED_ENABLE;
uint16 cttype = countertype & ~COUNTER_NEED_ENABLE;
auto pr = counters.insert(std::make_pair(cttype, counter_map::mapped_type()));
auto pr = counters.insert(std::make_pair(cttype, counter_map::mapped_type()));
...
@@ -2182,15 +2182,27 @@ int32 card::remove_counter(uint16 countertype, uint16 count) {
...
@@ -2182,15 +2182,27 @@ int32 card::remove_counter(uint16 countertype, uint16 count) {
pduel->write_buffer16(count);
pduel->write_buffer16(count);
return TRUE;
return TRUE;
}
}
int32
card
::
is_can_add_counter
(
uint8
playerid
,
uint16
countertype
,
uint16
count
,
uint8
singly
)
{
int32 card::is_can_add_counter(uint8 playerid, uint16 countertype, uint16 count, uint8 singly
, uint32 loc
) {
effect_set eset;
effect_set eset;
if(!pduel->game_field->is_player_can_place_counter(playerid, this, countertype, count))
if(!pduel->game_field->is_player_can_place_counter(playerid, this, countertype, count))
return FALSE;
return FALSE;
if
(
!
(
current
.
location
&
LOCATION_ONFIELD
)
||
!
is_position
(
POS_FACEUP
))
return
FALSE
;
if((countertype & COUNTER_NEED_ENABLE) && is_status(STATUS_DISABLED))
if((countertype & COUNTER_NEED_ENABLE) && is_status(STATUS_DISABLED))
return FALSE;
return FALSE;
if
(
!
(
countertype
&
COUNTER_WITHOUT_PERMIT
)
&&
!
is_affected_by_effect
(
EFFECT_COUNTER_PERMIT
+
(
countertype
&
0xffff
)))
uint32 check = countertype & COUNTER_WITHOUT_PERMIT;
if(!check) {
filter_effect(EFFECT_COUNTER_PERMIT + (countertype & 0xffff), &eset);
for(int32 i = 0; i < eset.size(); ++i) {
uint32 prange = eset[i]->get_value();
if(loc)
check = loc & prange;
else
check = current.is_location(prange) && is_position(POS_FACEUP);
if(check)
break;
}
eset.clear();
}
if(!check)
return FALSE;
return FALSE;
uint16 cttype = countertype & ~COUNTER_NEED_ENABLE;
uint16 cttype = countertype & ~COUNTER_NEED_ENABLE;
int32 limit = -1;
int32 limit = -1;
...
...
ocgcore/card.h
View file @
6d74aa5b
...
@@ -265,7 +265,7 @@ public:
...
@@ -265,7 +265,7 @@ public:
int32
destination_redirect
(
uint8
destination
,
uint32
reason
);
int32
destination_redirect
(
uint8
destination
,
uint32
reason
);
int32
add_counter
(
uint8
playerid
,
uint16
countertype
,
uint16
count
,
uint8
singly
);
int32
add_counter
(
uint8
playerid
,
uint16
countertype
,
uint16
count
,
uint8
singly
);
int32
remove_counter
(
uint16
countertype
,
uint16
count
);
int32
remove_counter
(
uint16
countertype
,
uint16
count
);
int32
is_can_add_counter
(
uint8
playerid
,
uint16
countertype
,
uint16
count
,
uint8
singly
);
int32
is_can_add_counter
(
uint8
playerid
,
uint16
countertype
,
uint16
count
,
uint8
singly
,
uint32
loc
);
int32
get_counter
(
uint16
countertype
);
int32
get_counter
(
uint16
countertype
);
void
set_material
(
card_set
*
materials
);
void
set_material
(
card_set
*
materials
);
void
add_card_target
(
card
*
pcard
);
void
add_card_target
(
card
*
pcard
);
...
...
ocgcore/libcard.cpp
View file @
6d74aa5b
...
@@ -2177,8 +2177,7 @@ int32 scriptlib::card_enable_counter_permit(lua_State *L) {
...
@@ -2177,8 +2177,7 @@ int32 scriptlib::card_enable_counter_permit(lua_State *L) {
peffect
->
owner
=
pcard
;
peffect
->
owner
=
pcard
;
peffect
->
type
=
EFFECT_TYPE_SINGLE
;
peffect
->
type
=
EFFECT_TYPE_SINGLE
;
peffect
->
code
=
EFFECT_COUNTER_PERMIT
|
countertype
;
peffect
->
code
=
EFFECT_COUNTER_PERMIT
|
countertype
;
peffect
->
flag
[
0
]
=
EFFECT_FLAG_SINGLE_RANGE
;
peffect
->
value
=
prange
;
peffect
->
range
=
prange
;
pcard
->
add_effect
(
peffect
);
pcard
->
add_effect
(
peffect
);
return
0
;
return
0
;
}
}
...
@@ -2218,7 +2217,10 @@ int32 scriptlib::card_is_can_add_counter(lua_State *L) {
...
@@ -2218,7 +2217,10 @@ int32 scriptlib::card_is_can_add_counter(lua_State *L) {
uint8
singly
=
FALSE
;
uint8
singly
=
FALSE
;
if
(
lua_gettop
(
L
)
>
3
)
if
(
lua_gettop
(
L
)
>
3
)
singly
=
lua_toboolean
(
L
,
4
);
singly
=
lua_toboolean
(
L
,
4
);
lua_pushboolean
(
L
,
pcard
->
is_can_add_counter
(
pcard
->
pduel
->
game_field
->
core
.
reason_player
,
countertype
,
count
,
singly
));
uint32
loc
=
0
;
if
(
lua_gettop
(
L
)
>
4
)
loc
=
lua_tointeger
(
L
,
5
);
lua_pushboolean
(
L
,
pcard
->
is_can_add_counter
(
pcard
->
pduel
->
game_field
->
core
.
reason_player
,
countertype
,
count
,
singly
,
loc
));
return
1
;
return
1
;
}
}
int32
scriptlib
::
card_is_can_remove_counter
(
lua_State
*
L
)
{
int32
scriptlib
::
card_is_can_remove_counter
(
lua_State
*
L
)
{
...
...
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