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
YGOPRO-520DIY
ygopro
Commits
445f4348
Commit
445f4348
authored
Aug 05, 2014
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
10c5edce
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
61 additions
and
34 deletions
+61
-34
ocgcore/field.cpp
ocgcore/field.cpp
+2
-1
ocgcore/operations.cpp
ocgcore/operations.cpp
+26
-16
ocgcore/processor.cpp
ocgcore/processor.cpp
+25
-10
script/c20644748.lua
script/c20644748.lua
+4
-4
script/c32646477.lua
script/c32646477.lua
+1
-0
script/c37474917.lua
script/c37474917.lua
+1
-0
script/c4130270.lua
script/c4130270.lua
+1
-1
script/c50485594.lua
script/c50485594.lua
+0
-1
script/c77462146.lua
script/c77462146.lua
+1
-1
No files found.
ocgcore/field.cpp
View file @
445f4348
...
...
@@ -146,6 +146,7 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence
pcard
->
operation_param
=
(
pcard
->
operation_param
&
0x00ffffff
)
|
(
POS_FACEDOWN_DEFENCE
<<
24
);
}
if
((
pcard
->
data
.
type
&
TYPE_PENDULUM
)
&&
(
location
==
LOCATION_GRAVE
)
&&
!
pcard
->
is_affected_by_effect
(
EFFECT_CANNOT_TO_DECK
)
&&
is_player_can_send_to_deck
(
playerid
,
pcard
)
&&
(((
pcard
->
previous
.
location
==
LOCATION_MZONE
)
&&
!
pcard
->
is_status
(
STATUS_SUMMON_DISABLED
))
||
((
pcard
->
previous
.
location
==
LOCATION_SZONE
)
&&
!
pcard
->
is_status
(
STATUS_ACTIVATE_DISABLED
))))
{
location
=
LOCATION_EXTRA
;
...
...
@@ -1719,7 +1720,7 @@ int32 field::check_xyz_material(card* scard, int32 findex, int32 min, int32 max,
core
.
xmaterial_lst
.
insert
(
std
::
make_pair
(
0
,
*
cit
));
}
}
else
{
pduel
->
game_field
->
get_xyz_material
(
scard
,
findex
,
max
);
get_xyz_material
(
scard
,
findex
,
max
);
}
return
core
.
xmaterial_lst
.
size
()
>=
min
;
}
...
...
ocgcore/operations.cpp
View file @
445f4348
...
...
@@ -742,15 +742,15 @@ int32 field::remove_overlay_card(uint16 step, uint32 reason, card* pcard, uint8
core
.
units
.
begin
()
->
step
=
3
;
return
FALSE
;
}
pduel
->
game_field
->
core
.
select_cards
.
clear
();
core
.
select_cards
.
clear
();
if
(
pcard
)
{
for
(
auto
cit
=
pcard
->
xyz_materials
.
begin
();
cit
!=
pcard
->
xyz_materials
.
end
();
++
cit
)
pduel
->
game_field
->
core
.
select_cards
.
push_back
(
*
cit
);
core
.
select_cards
.
push_back
(
*
cit
);
}
else
{
card_set
cset
;
pduel
->
game_field
->
get_overlay_group
(
rplayer
,
s
,
o
,
&
cset
);
get_overlay_group
(
rplayer
,
s
,
o
,
&
cset
);
for
(
auto
cit
=
cset
.
begin
();
cit
!=
cset
.
end
();
++
cit
)
pduel
->
game_field
->
core
.
select_cards
.
push_back
(
*
cit
);
core
.
select_cards
.
push_back
(
*
cit
);
}
pduel
->
write_buffer8
(
MSG_HINT
);
pduel
->
write_buffer8
(
HINT_SELECTMSG
);
...
...
@@ -800,14 +800,14 @@ int32 field::get_control(uint16 step, effect * reason_effect, uint8 reason_playe
return
TRUE
;
pcard
->
filter_disable_related_cards
();
if
(
pcard
->
unique_code
)
pduel
->
game_field
->
remove_unique_card
(
pcard
);
remove_unique_card
(
pcard
);
move_to_field
(
pcard
,
playerid
,
playerid
,
LOCATION_MZONE
,
pcard
->
current
.
position
);
pcard
->
set_status
(
STATUS_ATTACK_CANCELED
,
TRUE
);
return
FALSE
;
}
case
1
:
{
if
(
pcard
->
unique_code
)
pduel
->
game_field
->
add_unique_card
(
pcard
);
add_unique_card
(
pcard
);
set_control
(
pcard
,
playerid
,
reset_phase
,
reset_count
);
pcard
->
reset
(
RESET_CONTROL
,
RESET_EVENT
);
pcard
->
filter_disable_related_cards
();
...
...
@@ -848,17 +848,17 @@ int32 field::swap_control(uint16 step, effect * reason_effect, uint8 reason_play
pcard1
->
filter_disable_related_cards
();
pcard2
->
filter_disable_related_cards
();
if
(
pcard1
->
unique_code
)
pduel
->
game_field
->
remove_unique_card
(
pcard1
);
remove_unique_card
(
pcard1
);
if
(
pcard2
->
unique_code
)
pduel
->
game_field
->
remove_unique_card
(
pcard2
);
remove_unique_card
(
pcard2
);
remove_card
(
pcard1
);
remove_card
(
pcard2
);
add_card
(
p2
,
pcard1
,
l2
,
s2
);
add_card
(
p1
,
pcard2
,
l1
,
s1
);
if
(
pcard1
->
unique_code
)
pduel
->
game_field
->
add_unique_card
(
pcard1
);
add_unique_card
(
pcard1
);
if
(
pcard2
->
unique_code
)
pduel
->
game_field
->
add_unique_card
(
pcard2
);
add_unique_card
(
pcard2
);
set_control
(
pcard1
,
p2
,
reset_phase
,
reset_count
);
set_control
(
pcard2
,
p1
,
reset_phase
,
reset_count
);
pcard1
->
reset
(
RESET_CONTROL
,
RESET_EVENT
);
...
...
@@ -903,8 +903,8 @@ int32 field::control_adjust(uint16 step) {
switch
(
step
)
{
case
0
:
{
core
.
operated_set
.
clear
();
uint32
b0
=
pduel
->
game_field
->
get_useable_count
(
0
,
LOCATION_MZONE
,
PLAYER_NONE
,
0
);
uint32
b1
=
pduel
->
game_field
->
get_useable_count
(
1
,
LOCATION_MZONE
,
PLAYER_NONE
,
0
);
uint32
b0
=
get_useable_count
(
0
,
LOCATION_MZONE
,
PLAYER_NONE
,
0
);
uint32
b1
=
get_useable_count
(
1
,
LOCATION_MZONE
,
PLAYER_NONE
,
0
);
for
(
auto
cit
=
core
.
control_adjust_set
[
0
].
begin
();
cit
!=
core
.
control_adjust_set
[
0
].
end
();
++
cit
)
(
*
cit
)
->
filter_disable_related_cards
();
for
(
auto
cit
=
core
.
control_adjust_set
[
1
].
begin
();
cit
!=
core
.
control_adjust_set
[
1
].
end
();
++
cit
)
...
...
@@ -4258,11 +4258,21 @@ int32 field::select_tribute_cards(int16 step, uint8 playerid, uint8 cancelable,
rmax
+=
(
*
cit
)
->
operation_param
;
min
-=
rmax
;
max
-=
rmin
;
core
.
units
.
begin
()
->
arg2
=
(
max
<<
16
)
+
min
;
if
(
min
<=
0
)
{
core
.
units
.
begin
()
->
step
=
5
;
if
(
max
>
0
)
add_process
(
PROCESSOR_SELECT_YESNO
,
0
,
0
,
0
,
playerid
,
210
);
else
core
.
units
.
begin
()
->
step
=
6
;
}
else
returns
.
ivalue
[
0
]
=
TRUE
;
return
FALSE
;
}
case
5
:
{
if
(
!
returns
.
ivalue
[
0
])
{
core
.
units
.
begin
()
->
step
=
6
;
return
FALSE
;
}
core
.
units
.
begin
()
->
arg2
=
(
max
<<
16
)
+
min
;
core
.
select_cards
.
clear
();
for
(
auto
cit
=
core
.
release_cards
.
begin
();
cit
!=
core
.
release_cards
.
end
();
++
cit
)
core
.
select_cards
.
push_back
(
*
cit
);
...
...
@@ -4273,12 +4283,12 @@ int32 field::select_tribute_cards(int16 step, uint8 playerid, uint8 cancelable,
add_process
(
PROCESSOR_SELECT_TRIBUTE_P
,
0
,
0
,
0
,
((
uint32
)
cancelable
<<
16
)
+
playerid
,
(
max
<<
16
)
+
min
);
return
FALSE
;
}
case
5
:
{
case
6
:
{
for
(
int32
i
=
0
;
i
<
returns
.
bvalue
[
0
];
++
i
)
core
.
operated_set
.
insert
(
core
.
select_cards
[
returns
.
bvalue
[
i
+
1
]]);
return
FALSE
;
}
case
6
:
{
case
7
:
{
core
.
select_cards
.
clear
();
returns
.
bvalue
[
0
]
=
core
.
operated_set
.
size
();
int32
i
=
0
;
...
...
ocgcore/processor.cpp
View file @
445f4348
...
...
@@ -3429,8 +3429,11 @@ int32 field::process_battle_command(uint16 step) {
else
damp
=
pd
;
if
(
is_player_affected_by_effect
(
damp
,
EFFECT_REFLECT_BATTLE_DAMAGE
))
damp
=
1
-
damp
;
core
.
battle_damage
[
damp
]
=
a
-
d
;
reason_card
=
core
.
attacker
;
if
(
damp
==
pd
||
(
!
core
.
attacker
->
is_affected_by_effect
(
EFFECT_AVOID_BATTLE_DAMAGE
,
core
.
attack_target
)
&&
!
is_player_affected_by_effect
(
damp
,
EFFECT_AVOID_BATTLE_DAMAGE
)))
{
core
.
battle_damage
[
damp
]
=
a
-
d
;
reason_card
=
core
.
attacker
;
}
}
if
(
core
.
attack_target
->
is_destructable_by_battle
(
core
.
attacker
))
bd
[
1
]
=
TRUE
;
...
...
@@ -3448,8 +3451,11 @@ int32 field::process_battle_command(uint16 step) {
else
damp
=
pa
;
if
(
is_player_affected_by_effect
(
damp
,
EFFECT_REFLECT_BATTLE_DAMAGE
))
damp
=
1
-
damp
;
core
.
battle_damage
[
damp
]
=
d
-
a
;
reason_card
=
core
.
attack_target
;
if
(
damp
==
pa
||
(
!
core
.
attack_target
->
is_affected_by_effect
(
EFFECT_AVOID_BATTLE_DAMAGE
,
core
.
attacker
)
&&
!
is_player_affected_by_effect
(
damp
,
EFFECT_AVOID_BATTLE_DAMAGE
)))
{
core
.
battle_damage
[
damp
]
=
d
-
a
;
reason_card
=
core
.
attack_target
;
}
}
if
(
core
.
attacker
->
is_destructable_by_battle
(
core
.
attack_target
))
bd
[
0
]
=
TRUE
;
...
...
@@ -3488,8 +3494,12 @@ int32 field::process_battle_command(uint16 step) {
dp
[
pd
]
=
1
;
dp
[
1
-
pd
]
=
0
;
}
if
(
dp
[
0
])
core
.
battle_damage
[
0
]
=
a
-
d
;
if
(
dp
[
1
])
core
.
battle_damage
[
1
]
=
a
-
d
;
if
(
dp
[
pd
]
&&
!
core
.
attack_target
->
is_affected_by_effect
(
EFFECT_AVOID_BATTLE_DAMAGE
,
core
.
attacker
)
&&
!
is_player_affected_by_effect
(
pd
,
EFFECT_AVOID_BATTLE_DAMAGE
))
core
.
battle_damage
[
pd
]
=
a
-
d
;
if
(
dp
[
1
-
pd
]
&&
!
core
.
attacker
->
is_affected_by_effect
(
EFFECT_AVOID_BATTLE_DAMAGE
,
core
.
attack_target
)
&&
!
is_player_affected_by_effect
(
1
-
pd
,
EFFECT_AVOID_BATTLE_DAMAGE
))
core
.
battle_damage
[
1
-
pd
]
=
a
-
d
;
reason_card
=
core
.
attacker
;
}
if
(
core
.
attack_target
->
is_destructable_by_battle
(
core
.
attacker
))
...
...
@@ -3508,8 +3518,11 @@ int32 field::process_battle_command(uint16 step) {
else
damp
=
pa
;
if
(
is_player_affected_by_effect
(
damp
,
EFFECT_REFLECT_BATTLE_DAMAGE
))
damp
=
1
-
damp
;
core
.
battle_damage
[
damp
]
=
d
-
a
;
reason_card
=
core
.
attack_target
;
if
(
damp
==
pa
||
(
!
core
.
attack_target
->
is_affected_by_effect
(
EFFECT_AVOID_BATTLE_DAMAGE
,
core
.
attacker
)
&&
!
is_player_affected_by_effect
(
damp
,
EFFECT_AVOID_BATTLE_DAMAGE
)))
{
core
.
battle_damage
[
damp
]
=
d
-
a
;
reason_card
=
core
.
attack_target
;
}
}
}
}
...
...
@@ -3524,8 +3537,10 @@ int32 field::process_battle_command(uint16 step) {
damp
=
1
-
pa
;
if
(
is_player_affected_by_effect
(
damp
,
EFFECT_REFLECT_BATTLE_DAMAGE
))
damp
=
1
-
damp
;
core
.
battle_damage
[
damp
]
=
a
;
reason_card
=
core
.
attacker
;
if
(
!
is_player_affected_by_effect
(
damp
,
EFFECT_AVOID_BATTLE_DAMAGE
))
{
core
.
battle_damage
[
damp
]
=
a
;
reason_card
=
core
.
attacker
;
}
}
}
if
(
bd
[
0
])
...
...
script/c20644748.lua
View file @
445f4348
...
...
@@ -62,9 +62,9 @@ function c20644748.mvalue(e,fp,rp,r)
return
5
-
Duel
.
GetFieldGroupCount
(
fp
,
LOCATION_SZONE
,
0
)
end
function
c20644748
.
svalue
(
e
,
fp
,
rp
,
r
)
if
Duel
.
GetFieldCard
(
fp
,
LOCATION_SZONE
,
5
)
then
return
4
-
Duel
.
GetFieldGroupCount
(
fp
,
LOCATION_MZONE
,
0
)
else
return
5
-
Duel
.
GetFieldGroupCount
(
fp
,
LOCATION_MZONE
,
0
)
local
ct
=
5
for
i
=
5
,
7
do
if
Duel
.
GetFieldCard
(
fp
,
LOCATION_SZONE
,
i
)
then
ct
=
ct
-
1
end
end
return
ct
-
Duel
.
GetFieldGroupCount
(
fp
,
LOCATION_MZONE
,
0
)
end
script/c32646477.lua
View file @
445f4348
...
...
@@ -2,6 +2,7 @@
function
c32646477
.
initial_effect
(
c
)
--synchro summon
aux
.
AddSynchroProcedure
(
c
,
nil
,
aux
.
NonTuner
(
nil
),
1
)
c
:
EnableReviveLimit
()
--damage
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
32646477
,
0
))
...
...
script/c37474917.lua
View file @
445f4348
...
...
@@ -2,6 +2,7 @@
function
c37474917
.
initial_effect
(
c
)
--synchro summon
aux
.
AddSynchroProcedure
(
c
,
nil
,
aux
.
NonTuner
(
nil
),
1
)
c
:
EnableReviveLimit
()
--damage
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
37474917
,
0
))
...
...
script/c4130270.lua
View file @
445f4348
...
...
@@ -6,7 +6,7 @@ function c4130270.initial_effect(c)
e1
:
SetCode
(
EFFECT_CANNOT_TO_DECK
)
e1
:
SetProperty
(
EFFECT_FLAG_SET_AVAILABLE
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetTargetRange
(
LOCATION_
MZONE
,
LOCATION_MZONE
)
e1
:
SetTargetRange
(
LOCATION_
ONFIELD
,
LOCATION_ONFIELD
)
c
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
e2
:
SetCode
(
EFFECT_CANNOT_TO_HAND
)
...
...
script/c50485594.lua
View file @
445f4348
...
...
@@ -54,7 +54,6 @@ function c50485594.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
Duel
.
SetOperationInfo
(
0
,
CATEGORY_TOHAND
,
nil
,
2
,
tp
,
LOCATION_EXTRA
)
end
function
c50485594
.
thop
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
if
not
e
:
GetHandler
():
IsRelateToEffect
(
e
)
then
return
end
local
g
=
Duel
.
GetMatchingGroup
(
c50485594
.
filter
,
tp
,
LOCATION_EXTRA
,
0
,
nil
)
local
sg
=
g
:
Filter
(
c50485594
.
filter2
,
nil
,
g
)
if
sg
:
GetCount
()
==
0
then
return
end
...
...
script/c77462146.lua
View file @
445f4348
...
...
@@ -38,7 +38,7 @@ function c77462146.activate(e,tp,eg,ep,ev,re,r,rp)
local
e1
=
Effect
.
CreateEffect
(
e
:
GetHandler
())
e1
:
SetType
(
EFFECT_TYPE_SINGLE
)
e1
:
SetCode
(
EFFECT_UPDATE_ATTACK
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
+
RESET_PHASE
+
RESET_END
)
e1
:
SetReset
(
RESET_EVENT
+
0x1fe0000
)
e1
:
SetValue
(
300
)
tc
:
RegisterEffect
(
e1
)
local
e2
=
e1
:
Clone
()
...
...
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