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
179a744d
Commit
179a744d
authored
Jun 21, 2016
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
a6e1123b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
2 deletions
+40
-2
card.cpp
card.cpp
+40
-2
No files found.
card.cpp
View file @
179a744d
...
...
@@ -465,6 +465,9 @@ int32 card::get_attack() {
int32
batk
=
data
.
attack
;
if
(
batk
<
0
)
batk
=
0
;
int32
bdef
=
data
.
defense
;
if
(
bdef
<
0
)
bdef
=
0
;
temp
.
attack
=
batk
;
int32
atk
=
-
1
;
int32
up_atk
=
0
,
upc_atk
=
0
;
...
...
@@ -474,8 +477,10 @@ int32 card::get_attack() {
filter_effect
(
EFFECT_UPDATE_ATTACK
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_ATTACK
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_ATTACK_FINAL
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_ATTACK
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SWAP_ATTACK_FINAL
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SWAP_BASE_AD
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_ATTACK
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_DEFENSE
,
&
eset
,
FALSE
);
eset
.
sort
();
int32
rev
=
FALSE
;
if
(
is_affected_by_effect
(
EFFECT_REVERSE_UPDATE
))
...
...
@@ -490,6 +495,12 @@ int32 card::get_attack() {
batk
=
0
;
eset
.
remove_item
(
i
);
continue
;
case
EFFECT_SET_BASE_DEFENSE
:
bdef
=
eset
[
i
]
->
get_value
(
this
);
if
(
bdef
<
0
)
bdef
=
0
;
eset
.
remove_item
(
i
);
continue
;
}
}
++
i
;
...
...
@@ -531,9 +542,17 @@ int32 card::get_attack() {
up_atk
=
0
;
upc_atk
=
0
;
break
;
case
EFFECT_SET_BASE_DEFENSE
:
bdef
=
eset
[
i
]
->
get_value
(
this
);
if
(
bdef
<
0
)
bdef
=
0
;
break
;
case
EFFECT_SWAP_AD
:
swap_final
=
!
swap_final
;
break
;
case
EFFECT_SWAP_BASE_AD
:
std
::
swap
(
batk
,
bdef
);
break
;
}
if
(
!
rev
)
{
temp
.
attack
=
((
atk
<
0
)
?
batk
:
atk
)
+
up_atk
+
upc_atk
;
...
...
@@ -632,6 +651,9 @@ int32 card::get_defense() {
return
data
.
defense
;
if
(
temp
.
defense
!=
-
1
)
return
temp
.
defense
;
int32
batk
=
data
.
attack
;
if
(
batk
<
0
)
batk
=
0
;
int32
bdef
=
data
.
defense
;
if
(
bdef
<
0
)
bdef
=
0
;
...
...
@@ -644,8 +666,10 @@ int32 card::get_defense() {
filter_effect
(
EFFECT_UPDATE_DEFENSE
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_DEFENSE
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_DEFENSE_FINAL
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_DEFENSE
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SWAP_DEFENSE_FINAL
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SWAP_BASE_AD
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_ATTACK
,
&
eset
,
FALSE
);
filter_effect
(
EFFECT_SET_BASE_DEFENSE
,
&
eset
,
FALSE
);
eset
.
sort
();
int32
rev
=
FALSE
;
if
(
is_affected_by_effect
(
EFFECT_REVERSE_UPDATE
))
...
...
@@ -654,6 +678,12 @@ int32 card::get_defense() {
for
(
int32
i
=
0
;
i
<
eset
.
size
();)
{
if
((
eset
[
i
]
->
type
&
EFFECT_TYPE_SINGLE
)
&&
eset
[
i
]
->
is_flag
(
EFFECT_FLAG_SINGLE_RANGE
))
{
switch
(
eset
[
i
]
->
code
)
{
case
EFFECT_SET_BASE_ATTACK
:
batk
=
eset
[
i
]
->
get_value
(
this
);
if
(
batk
<
0
)
batk
=
0
;
eset
.
remove_item
(
i
);
continue
;
case
EFFECT_SET_BASE_DEFENSE
:
bdef
=
eset
[
i
]
->
get_value
(
this
);
if
(
bdef
<
0
)
...
...
@@ -701,9 +731,17 @@ int32 card::get_defense() {
up_def
=
0
;
upc_def
=
0
;
break
;
case
EFFECT_SET_BASE_ATTACK
:
batk
=
eset
[
i
]
->
get_value
(
this
);
if
(
batk
<
0
)
batk
=
0
;
break
;
case
EFFECT_SWAP_AD
:
swap_final
=
!
swap_final
;
break
;
case
EFFECT_SWAP_BASE_AD
:
std
::
swap
(
batk
,
bdef
);
break
;
}
if
(
!
rev
)
{
temp
.
defense
=
((
def
<
0
)
?
bdef
:
def
)
+
up_def
+
upc_def
;
...
...
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