Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
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
REIKAI
ygopro
Commits
dfcff86f
Commit
dfcff86f
authored
Dec 20, 2011
by
argon.sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
compatible with libevent
parent
dbeeeac5
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
79 additions
and
81 deletions
+79
-81
ocgcore/effect.cpp
ocgcore/effect.cpp
+4
-4
ocgcore/effect.h
ocgcore/effect.h
+5
-5
ocgcore/field.cpp
ocgcore/field.cpp
+15
-17
ocgcore/field.h
ocgcore/field.h
+11
-11
ocgcore/libcard.cpp
ocgcore/libcard.cpp
+1
-0
ocgcore/operations.cpp
ocgcore/operations.cpp
+12
-12
ocgcore/processor.cpp
ocgcore/processor.cpp
+30
-31
script/utility.lua
script/utility.lua
+1
-1
No files found.
ocgcore/effect.cpp
View file @
dfcff86f
...
@@ -101,7 +101,7 @@ int32 effect::is_available() {
...
@@ -101,7 +101,7 @@ int32 effect::is_available() {
}
}
return
TRUE
;
return
TRUE
;
}
}
int32
effect
::
is_activateable
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
int32
effect
::
is_activateable
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
if
(
!
(
type
&
EFFECT_TYPE_ACTIONS
))
if
(
!
(
type
&
EFFECT_TYPE_ACTIONS
))
return
FALSE
;
return
FALSE
;
if
((
flag
&
EFFECT_FLAG_COUNT_LIMIT
)
&&
(
reset_count
&
0xf00
)
==
0
)
if
((
flag
&
EFFECT_FLAG_COUNT_LIMIT
)
&&
(
reset_count
&
0xf00
)
==
0
)
...
@@ -206,7 +206,7 @@ int32 effect::is_action_check(uint8 playerid) {
...
@@ -206,7 +206,7 @@ int32 effect::is_action_check(uint8 playerid) {
}
}
return
TRUE
;
return
TRUE
;
}
}
int32
effect
::
is_activate_ready
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
int32
effect
::
is_activate_ready
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
if
(
!
neglect_cond
&&
condition
)
{
if
(
!
neglect_cond
&&
condition
)
{
pduel
->
lua
->
add_param
(
this
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
this
,
PARAM_TYPE_EFFECT
);
pduel
->
lua
->
add_param
(
playerid
,
PARAM_TYPE_INT
);
pduel
->
lua
->
add_param
(
playerid
,
PARAM_TYPE_INT
);
...
@@ -250,7 +250,7 @@ int32 effect::is_activate_ready(uint8 playerid, event& e, int32 neglect_cond, in
...
@@ -250,7 +250,7 @@ int32 effect::is_activate_ready(uint8 playerid, event& e, int32 neglect_cond, in
}
}
return
TRUE
;
return
TRUE
;
}
}
int32
effect
::
is_condition_check
(
uint8
playerid
,
event
&
e
)
{
int32
effect
::
is_condition_check
(
uint8
playerid
,
t
event
&
e
)
{
if
((
handler
->
current
.
location
&
LOCATION_ONFIELD
)
&&
(
type
&
EFFECT_TYPE_FIELD
)
if
((
handler
->
current
.
location
&
LOCATION_ONFIELD
)
&&
(
type
&
EFFECT_TYPE_FIELD
)
&&
(
!
handler
->
is_position
(
POS_FACEUP
)
||
!
handler
->
is_status
(
STATUS_EFFECT_ENABLED
)))
&&
(
!
handler
->
is_position
(
POS_FACEUP
)
||
!
handler
->
is_status
(
STATUS_EFFECT_ENABLED
)))
return
FALSE
;
return
FALSE
;
...
@@ -280,7 +280,7 @@ int32 effect::is_condition_check(uint8 playerid, event& e) {
...
@@ -280,7 +280,7 @@ int32 effect::is_condition_check(uint8 playerid, event& e) {
pduel
->
game_field
->
core
.
reason_player
=
op
;
pduel
->
game_field
->
core
.
reason_player
=
op
;
return
TRUE
;
return
TRUE
;
}
}
int32
effect
::
is_activate_check
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
int32
effect
::
is_activate_check
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
,
int32
neglect_cost
,
int32
neglect_target
)
{
pduel
->
game_field
->
save_lp_cost
();
pduel
->
game_field
->
save_lp_cost
();
effect
*
oreason
=
pduel
->
game_field
->
core
.
reason_effect
;
effect
*
oreason
=
pduel
->
game_field
->
core
.
reason_effect
;
uint8
op
=
pduel
->
game_field
->
core
.
reason_player
;
uint8
op
=
pduel
->
game_field
->
core
.
reason_player
;
...
...
ocgcore/effect.h
View file @
dfcff86f
...
@@ -21,7 +21,7 @@ class card;
...
@@ -21,7 +21,7 @@ class card;
class
duel
;
class
duel
;
class
group
;
class
group
;
class
effect
;
class
effect
;
struct
event
;
struct
t
event
;
struct
effect_set
;
struct
effect_set
;
struct
effect_set_v
;
struct
effect_set_v
;
...
@@ -59,11 +59,11 @@ public:
...
@@ -59,11 +59,11 @@ public:
int32
is_disable_related
();
int32
is_disable_related
();
int32
is_available
();
int32
is_available
();
int32
is_activateable
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_activateable
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_action_check
(
uint8
playerid
);
int32
is_action_check
(
uint8
playerid
);
int32
is_activate_ready
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_activate_ready
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_condition_check
(
uint8
playerid
,
event
&
e
);
int32
is_condition_check
(
uint8
playerid
,
t
event
&
e
);
int32
is_activate_check
(
uint8
playerid
,
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_activate_check
(
uint8
playerid
,
t
event
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
);
int32
is_target
(
card
*
pcard
);
int32
is_target
(
card
*
pcard
);
int32
is_target_player
(
uint8
playerid
);
int32
is_target_player
(
uint8
playerid
);
int32
is_player_effect_target
(
card
*
pcard
);
int32
is_player_effect_target
(
card
*
pcard
);
...
...
ocgcore/field.cpp
View file @
dfcff86f
...
@@ -450,7 +450,7 @@ void field::add_effect(effect* peffect, uint8 owner_player) {
...
@@ -450,7 +450,7 @@ void field::add_effect(effect* peffect, uint8 owner_player) {
it
=
effects
.
aura_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
aura_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
{
else
{
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
it
=
effects
.
startup
_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
ignition
_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
it
=
effects
.
activate_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
activate_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
&&
peffect
->
type
&
EFFECT_TYPE_FIELD
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
&&
peffect
->
type
&
EFFECT_TYPE_FIELD
)
...
@@ -458,9 +458,9 @@ void field::add_effect(effect* peffect, uint8 owner_player) {
...
@@ -458,9 +458,9 @@ void field::add_effect(effect* peffect, uint8 owner_player) {
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
&&
peffect
->
type
&
EFFECT_TYPE_FIELD
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
&&
peffect
->
type
&
EFFECT_TYPE_FIELD
)
it
=
effects
.
trigger_f_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
trigger_f_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
it
=
effects
.
instant
_o_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
quick
_o_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
it
=
effects
.
instant
_f_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
quick
_f_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
it
=
effects
.
continuous_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
it
=
effects
.
continuous_effect
.
insert
(
make_pair
(
peffect
->
code
,
peffect
));
}
}
...
@@ -484,7 +484,7 @@ void field::remove_effect(effect* peffect) {
...
@@ -484,7 +484,7 @@ void field::remove_effect(effect* peffect) {
effects
.
aura_effect
.
erase
(
it
);
effects
.
aura_effect
.
erase
(
it
);
else
{
else
{
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
effects
.
startup
_effect
.
erase
(
it
);
effects
.
ignition
_effect
.
erase
(
it
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
effects
.
activate_effect
.
erase
(
it
);
effects
.
activate_effect
.
erase
(
it
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
)
...
@@ -492,9 +492,9 @@ void field::remove_effect(effect* peffect) {
...
@@ -492,9 +492,9 @@ void field::remove_effect(effect* peffect) {
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
)
effects
.
trigger_f_effect
.
erase
(
it
);
effects
.
trigger_f_effect
.
erase
(
it
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
effects
.
instant
_o_effect
.
erase
(
it
);
effects
.
quick
_o_effect
.
erase
(
it
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
effects
.
instant
_f_effect
.
erase
(
it
);
effects
.
quick
_f_effect
.
erase
(
it
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
effects
.
continuous_effect
.
erase
(
it
);
effects
.
continuous_effect
.
erase
(
it
);
}
}
...
@@ -543,7 +543,7 @@ void field::reset_effect(uint32 id, uint32 reset_type) {
...
@@ -543,7 +543,7 @@ void field::reset_effect(uint32 id, uint32 reset_type) {
effects
.
aura_effect
.
erase
(
pit
);
effects
.
aura_effect
.
erase
(
pit
);
}
else
{
}
else
{
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
if
(
peffect
->
type
&
EFFECT_TYPE_IGNITION
)
effects
.
startup
_effect
.
erase
(
pit
);
effects
.
ignition
_effect
.
erase
(
pit
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_ACTIVATE
)
effects
.
activate_effect
.
erase
(
pit
);
effects
.
activate_effect
.
erase
(
pit
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_O
)
...
@@ -551,9 +551,9 @@ void field::reset_effect(uint32 id, uint32 reset_type) {
...
@@ -551,9 +551,9 @@ void field::reset_effect(uint32 id, uint32 reset_type) {
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_TRIGGER_F
)
effects
.
trigger_f_effect
.
erase
(
pit
);
effects
.
trigger_f_effect
.
erase
(
pit
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_O
)
effects
.
instant
_o_effect
.
erase
(
pit
);
effects
.
quick
_o_effect
.
erase
(
pit
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_QUICK_F
)
effects
.
instant
_f_effect
.
erase
(
pit
);
effects
.
quick
_f_effect
.
erase
(
pit
);
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
else
if
(
peffect
->
type
&
EFFECT_TYPE_CONTINUOUS
)
effects
.
continuous_effect
.
erase
(
pit
);
effects
.
continuous_effect
.
erase
(
pit
);
}
}
...
@@ -1074,7 +1074,7 @@ int32 field::check_lp_cost(uint8 playerid, uint32 lp) {
...
@@ -1074,7 +1074,7 @@ int32 field::check_lp_cost(uint8 playerid, uint32 lp) {
if
(
val
<=
0
)
if
(
val
<=
0
)
return
TRUE
;
return
TRUE
;
}
}
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
e
.
event_player
=
playerid
;
e
.
event_value
=
lp
;
e
.
event_value
=
lp
;
...
@@ -1121,12 +1121,10 @@ uint32 field::get_field_counter(uint8 self, uint8 s, uint8 o, uint16 countertype
...
@@ -1121,12 +1121,10 @@ uint32 field::get_field_counter(uint8 self, uint8 s, uint8 o, uint16 countertype
}
}
return
count
;
return
count
;
}
}
int32
field
::
effect_replace_check
(
uint32
code
,
event
e
)
{
int32
field
::
effect_replace_check
(
uint32
code
,
tevent
&
e
)
{
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
auto
pr
=
effects
.
continuous_effect
.
equal_range
(
code
);
pr
=
effects
.
continuous_effect
.
equal_range
(
code
);
effect
*
peffect
;
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
if
(
peffect
->
is_activateable
(
peffect
->
get_handler_player
(),
e
))
return
TRUE
;
return
TRUE
;
}
}
...
@@ -1407,7 +1405,7 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
...
@@ -1407,7 +1405,7 @@ int32 field::is_player_can_remove_counter(uint8 playerid, card * pcard, uint8 s,
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
effect
*
peffect
;
effect
*
peffect
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
e
.
event_player
=
playerid
;
e
.
event_value
=
count
;
e
.
event_value
=
count
;
...
@@ -1427,7 +1425,7 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card* pcard, uint
...
@@ -1427,7 +1425,7 @@ int32 field::is_player_can_remove_overlay_card(uint8 playerid, card* pcard, uint
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
effect
*
peffect
;
effect
*
peffect
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
e
.
event_player
=
playerid
;
e
.
event_value
=
min
;
e
.
event_value
=
min
;
...
...
ocgcore/field.h
View file @
dfcff86f
...
@@ -22,7 +22,7 @@ class duel;
...
@@ -22,7 +22,7 @@ class duel;
class
group
;
class
group
;
class
effect
;
class
effect
;
struct
event
{
struct
t
event
{
uint32
event_code
;
uint32
event_code
;
void
*
event_cards
;
void
*
event_cards
;
uint32
event_value
;
uint32
event_value
;
...
@@ -53,7 +53,7 @@ struct chain {
...
@@ -53,7 +53,7 @@ struct chain {
int32
target_param
;
int32
target_param
;
effect
*
disable_reason
;
effect
*
disable_reason
;
uint8
disable_player
;
uint8
disable_player
;
event
evt
;
t
event
evt
;
opmap
opinfos
;
opmap
opinfos
;
uint32
flag
;
uint32
flag
;
static
bool
chain_operation_sort
(
chain
c1
,
chain
c2
);
static
bool
chain_operation_sort
(
chain
c1
,
chain
c2
);
...
@@ -81,12 +81,12 @@ struct field_effect {
...
@@ -81,12 +81,12 @@ struct field_effect {
typedef
std
::
set
<
effect
*>
effect_collection
;
typedef
std
::
set
<
effect
*>
effect_collection
;
effect_container
aura_effect
;
effect_container
aura_effect
;
effect_container
startup
_effect
;
effect_container
ignition
_effect
;
effect_container
activate_effect
;
effect_container
activate_effect
;
effect_container
trigger_o_effect
;
effect_container
trigger_o_effect
;
effect_container
trigger_f_effect
;
effect_container
trigger_f_effect
;
effect_container
instant
_o_effect
;
effect_container
quick
_o_effect
;
effect_container
instant
_f_effect
;
effect_container
quick
_f_effect
;
effect_container
continuous_effect
;
effect_container
continuous_effect
;
effect_indexer
indexer
;
effect_indexer
indexer
;
oath_effects
oath
;
oath_effects
oath
;
...
@@ -131,7 +131,7 @@ struct processor {
...
@@ -131,7 +131,7 @@ struct processor {
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
uint32
>
option_vector
;
typedef
std
::
vector
<
uint32
>
option_vector
;
typedef
std
::
list
<
card
*>
card_list
;
typedef
std
::
list
<
card
*>
card_list
;
typedef
std
::
list
<
event
>
event_list
;
typedef
std
::
list
<
t
event
>
event_list
;
typedef
std
::
list
<
chain
>
chain_list
;
typedef
std
::
list
<
chain
>
chain_list
;
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
vector
<
chain
>
chain_array
;
...
@@ -172,7 +172,7 @@ struct processor {
...
@@ -172,7 +172,7 @@ struct processor {
chain_list
new_ochain_b
;
chain_list
new_ochain_b
;
chain_list
flip_chain_b
;
chain_list
flip_chain_b
;
chain_list
new_chains
;
chain_list
new_chains
;
instant_f_list
instant
_f_chain
;
instant_f_list
quick
_f_chain
;
card_set
leave_confirmed
;
card_set
leave_confirmed
;
card_set
special_summoning
;
card_set
special_summoning
;
card_list
adjust_list
;
card_list
adjust_list
;
...
@@ -253,7 +253,7 @@ public:
...
@@ -253,7 +253,7 @@ public:
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
uint32
>
option_vector
;
typedef
std
::
vector
<
uint32
>
option_vector
;
typedef
std
::
list
<
card
*>
card_list
;
typedef
std
::
list
<
card
*>
card_list
;
typedef
std
::
list
<
event
>
event_list
;
typedef
std
::
list
<
t
event
>
event_list
;
typedef
std
::
list
<
chain
>
chain_list
;
typedef
std
::
list
<
chain
>
chain_list
;
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
vector
<
chain
>
chain_array
;
...
@@ -268,7 +268,7 @@ public:
...
@@ -268,7 +268,7 @@ public:
field_effect
effects
;
field_effect
effects
;
processor
core
;
processor
core
;
return_value
returns
;
return_value
returns
;
event
nil_event
;
t
event
nil_event
;
static
int32
field_used_count
[
32
];
static
int32
field_used_count
[
32
];
field
(
duel
*
pduel
);
field
(
duel
*
pduel
);
...
@@ -317,7 +317,7 @@ public:
...
@@ -317,7 +317,7 @@ public:
int32
pay_lp_cost
(
uint32
step
,
uint8
playerid
,
uint32
cost
);
int32
pay_lp_cost
(
uint32
step
,
uint8
playerid
,
uint32
cost
);
uint32
get_field_counter
(
uint8
self
,
uint8
s
,
uint8
o
,
uint16
countertype
);
uint32
get_field_counter
(
uint8
self
,
uint8
s
,
uint8
o
,
uint16
countertype
);
int32
effect_replace_check
(
uint32
code
,
event
e
);
int32
effect_replace_check
(
uint32
code
,
tevent
&
e
);
int32
get_attack_target
(
card
*
pcard
,
card_vector
*
v
,
uint8
chain_attack
=
FALSE
);
int32
get_attack_target
(
card
*
pcard
,
card_vector
*
v
,
uint8
chain_attack
=
FALSE
);
int32
check_synchro_material
(
card
*
pcard
,
int32
findex1
,
int32
findex2
,
int32
min
);
int32
check_synchro_material
(
card
*
pcard
,
int32
findex1
,
int32
findex2
,
int32
min
);
int32
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
);
int32
check_tuner_material
(
card
*
pcard
,
card
*
tuner
,
int32
findex1
,
int32
findex2
,
int32
min
);
...
@@ -352,7 +352,7 @@ public:
...
@@ -352,7 +352,7 @@ public:
void
raise_event
(
card
*
event_card
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
void
raise_event
(
card
*
event_card
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
void
raise_event
(
card_set
*
event_cards
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
void
raise_event
(
card_set
*
event_cards
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
void
raise_single_event
(
card
*
event_card
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
void
raise_single_event
(
card
*
event_card
,
uint32
event_code
,
effect
*
reason_effect
,
uint32
reason
,
uint8
reason_player
,
uint8
event_player
,
uint32
event_value
);
int32
check_event
(
uint32
code
,
event
*
pe
=
0
);
int32
check_event
(
uint32
code
,
t
event
*
pe
=
0
);
int32
check_hint_timing
(
effect
*
peffect
);
int32
check_hint_timing
(
effect
*
peffect
);
int32
process_phase_event
(
int16
step
,
int32
phase_event
);
int32
process_phase_event
(
int16
step
,
int32
phase_event
);
int32
process_point_event
(
int16
step
,
int32
special
,
int32
skip_new
);
int32
process_point_event
(
int16
step
,
int32
special
,
int32
skip_new
);
...
...
ocgcore/libcard.cpp
View file @
dfcff86f
...
@@ -1601,6 +1601,7 @@ int32 scriptlib::card_trap_monster_block(lua_State *L) {
...
@@ -1601,6 +1601,7 @@ int32 scriptlib::card_trap_monster_block(lua_State *L) {
peffect
->
reset_flag
=
RESET_EVENT
+
0x5fe0000
;
peffect
->
reset_flag
=
RESET_EVENT
+
0x5fe0000
;
peffect
->
value
=
1
+
(
0x10000
<<
pcard
->
previous
.
sequence
);
peffect
->
value
=
1
+
(
0x10000
<<
pcard
->
previous
.
sequence
);
pcard
->
add_effect
(
peffect
);
pcard
->
add_effect
(
peffect
);
return
0
;
}
}
int32
scriptlib
::
card_cancel_to_grave
(
lua_State
*
L
)
{
int32
scriptlib
::
card_cancel_to_grave
(
lua_State
*
L
)
{
check_param_count
(
L
,
1
);
check_param_count
(
L
,
1
);
...
...
ocgcore/operations.cpp
View file @
dfcff86f
...
@@ -487,7 +487,7 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
...
@@ -487,7 +487,7 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
return
TRUE
;
return
TRUE
;
}
}
core
.
units
.
begin
()
->
arg2
=
val
;
core
.
units
.
begin
()
->
arg2
=
val
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
e
.
event_player
=
playerid
;
e
.
event_value
=
val
;
e
.
event_value
=
val
;
...
@@ -529,7 +529,7 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
...
@@ -529,7 +529,7 @@ int32 field::pay_lp_cost(uint32 step, uint8 playerid, uint32 cost) {
pduel
->
write_buffer32
(
cost
);
pduel
->
write_buffer32
(
cost
);
return
TRUE
;
return
TRUE
;
}
}
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
playerid
;
e
.
event_player
=
playerid
;
e
.
event_value
=
cost
;
e
.
event_value
=
cost
;
...
@@ -555,7 +555,7 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
...
@@ -555,7 +555,7 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_RCOUNTER_REPLACE
+
countertype
);
effect
*
peffect
;
effect
*
peffect
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
e
.
event_player
=
rplayer
;
e
.
event_value
=
count
;
e
.
event_value
=
count
;
...
@@ -583,7 +583,7 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
...
@@ -583,7 +583,7 @@ int32 field::remove_counter(uint16 step, uint32 reason, card* pcard, uint8 rplay
case
1
:
{
case
1
:
{
effect
*
peffect
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
effect
*
peffect
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
if
(
peffect
)
{
if
(
peffect
)
{
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
e
.
event_player
=
rplayer
;
e
.
event_value
=
count
;
e
.
event_value
=
count
;
...
@@ -657,7 +657,7 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
...
@@ -657,7 +657,7 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pair
<
effect_container
::
iterator
,
effect_container
::
iterator
>
pr
;
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
pr
=
effects
.
continuous_effect
.
equal_range
(
EFFECT_OVERLAY_REMOVE_REPLACE
);
effect
*
peffect
;
effect
*
peffect
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
e
.
event_player
=
rplayer
;
e
.
event_value
=
min
;
e
.
event_value
=
min
;
...
@@ -685,7 +685,7 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
...
@@ -685,7 +685,7 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
case
1
:
{
case
1
:
{
effect
*
peffect
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
effect
*
peffect
=
core
.
select_effects
[
returns
.
ivalue
[
0
]];
if
(
peffect
)
{
if
(
peffect
)
{
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
event_player
=
rplayer
;
e
.
event_player
=
rplayer
;
e
.
event_value
=
min
+
(
max
<<
16
);;
e
.
event_value
=
min
+
(
max
<<
16
);;
...
@@ -2713,7 +2713,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -2713,7 +2713,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
if
(
!
replace_effect
->
target
)
if
(
!
replace_effect
->
target
)
return
TRUE
;
return
TRUE
;
card
*
target
=
(
card
*
)
arg1
;
card
*
target
=
(
card
*
)
arg1
;
event
e
;
t
event
e
;
e
.
event_cards
=
targets
;
e
.
event_cards
=
targets
;
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_value
=
0
;
e
.
event_value
=
0
;
...
@@ -2774,7 +2774,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -2774,7 +2774,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
return
TRUE
;
return
TRUE
;
}
}
case
5
:
{
case
5
:
{
event
e
;
t
event
e
;
e
.
event_cards
=
targets
;
e
.
event_cards
=
targets
;
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_value
=
0
;
e
.
event_value
=
0
;
...
@@ -2849,7 +2849,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -2849,7 +2849,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
if
(
!
replace_effect
->
target
)
if
(
!
replace_effect
->
target
)
return
TRUE
;
return
TRUE
;
card
*
target
=
(
card
*
)
arg1
;
card
*
target
=
(
card
*
)
arg1
;
event
e
;
t
event
e
;
e
.
event_cards
=
targets
;
e
.
event_cards
=
targets
;
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_value
=
0
;
e
.
event_value
=
0
;
...
@@ -2891,7 +2891,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -2891,7 +2891,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
return
TRUE
;
return
TRUE
;
}
}
case
12
:
{
case
12
:
{
event
e
;
t
event
e
;
e
.
event_cards
=
targets
;
e
.
event_cards
=
targets
;
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_player
=
replace_effect
->
get_handler_player
();
e
.
event_value
=
0
;
e
.
event_value
=
0
;
...
@@ -3228,7 +3228,7 @@ int32 field::toss_coin(uint16 step, effect* reason_effect, uint8 reason_player,
...
@@ -3228,7 +3228,7 @@ int32 field::toss_coin(uint16 step, effect* reason_effect, uint8 reason_player,
case
0
:
{
case
0
:
{
effect_set
eset
;
effect_set
eset
;
effect
*
peffect
=
0
;
effect
*
peffect
=
0
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
core
.
reason_player
;
e
.
reason_player
=
core
.
reason_player
;
...
@@ -3273,7 +3273,7 @@ int32 field::toss_dice(uint16 step, effect* reason_effect, uint8 reason_player,
...
@@ -3273,7 +3273,7 @@ int32 field::toss_dice(uint16 step, effect* reason_effect, uint8 reason_player,
case
0
:
{
case
0
:
{
effect_set
eset
;
effect_set
eset
;
effect
*
peffect
=
0
;
effect
*
peffect
=
0
;
event
e
;
t
event
e
;
e
.
event_cards
=
0
;
e
.
event_cards
=
0
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_effect
=
core
.
reason_effect
;
e
.
reason_player
=
core
.
reason_player
;
e
.
reason_player
=
core
.
reason_player
;
...
...
ocgcore/processor.cpp
View file @
dfcff86f
This diff is collapsed.
Click to expand it.
script/utility.lua
View file @
dfcff86f
...
@@ -609,7 +609,7 @@ end
...
@@ -609,7 +609,7 @@ end
function
Auxiliary
.
FConditionCodeRep
(
code
,
cc
,
sub
,
insf
)
function
Auxiliary
.
FConditionCodeRep
(
code
,
cc
,
sub
,
insf
)
return
function
(
e
,
g
,
gc
,
chkf
)
return
function
(
e
,
g
,
gc
,
chkf
)
if
g
==
nil
then
return
insf
end
if
g
==
nil
then
return
insf
end
if
gc
then
return
gc
:
IsHasEffect
()
and
g
:
IsExists
(
Card
.
IsCode
,
cc
-
1
,
nil
,
code
)
end
if
gc
then
return
gc
:
IsHasEffect
(
EFFECT_FUSION_SUBSTITUTE
)
and
g
:
IsExists
(
Card
.
IsCode
,
cc
-
1
,
nil
,
code
)
end
local
g1
=
g
:
Filter
(
Card
.
IsCode
,
nil
,
code
)
local
g1
=
g
:
Filter
(
Card
.
IsCode
,
nil
,
code
)
if
not
sub
then
if
not
sub
then
if
chkf
~=
PLAYER_NONE
then
return
g1
:
GetCount
()
>=
cc
and
g1
:
FilterCount
(
Card
.
IsOnField
,
nil
)
~=
0
if
chkf
~=
PLAYER_NONE
then
return
g1
:
GetCount
()
>=
cc
and
g1
:
FilterCount
(
Card
.
IsOnField
,
nil
)
~=
0
...
...
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