Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
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
fallenstardust
YGOMobile-Cn-Ko-En
Commits
da563821
Commit
da563821
authored
Feb 05, 2025
by
Dark Zane
Committed by
GitHub
Feb 05, 2025
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fallenstardust:master' into master
parents
07eb9912
84aaace6
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
207 additions
and
69 deletions
+207
-69
Classes/gframe/client_card.cpp
Classes/gframe/client_card.cpp
+17
-15
Classes/gframe/client_field.cpp
Classes/gframe/client_field.cpp
+5
-2
Classes/gframe/event_handler.cpp
Classes/gframe/event_handler.cpp
+32
-30
Classes/ocgcore/card.cpp
Classes/ocgcore/card.cpp
+28
-7
Classes/ocgcore/card.h
Classes/ocgcore/card.h
+3
-3
Classes/ocgcore/effect.h
Classes/ocgcore/effect.h
+6
-2
Classes/ocgcore/field.h
Classes/ocgcore/field.h
+1
-1
Classes/ocgcore/group.h
Classes/ocgcore/group.h
+6
-6
mobile/assets/changelog.html
mobile/assets/changelog.html
+2
-1
mobile/assets/data/conf/bot.conf
mobile/assets/data/conf/bot.conf
+5
-0
mobile/assets/data/windbot/windbot/Decks/AI_Ryzeal.ydk
mobile/assets/data/windbot/windbot/Decks/AI_Ryzeal.ydk
+74
-0
mobile/assets/en/data/conf/bot.conf
mobile/assets/en/data/conf/bot.conf
+5
-0
mobile/assets/es/data/conf/bot.conf
mobile/assets/es/data/conf/bot.conf
+5
-0
mobile/assets/jp/data/conf/bot.conf
mobile/assets/jp/data/conf/bot.conf
+7
-2
mobile/assets/kor/data/conf/bot.conf
mobile/assets/kor/data/conf/bot.conf
+5
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeFragment.java
...c/main/java/cn/garymb/ygomobile/ui/home/HomeFragment.java
+1
-0
mobile/src/main/res/values-es/strings.xml
mobile/src/main/res/values-es/strings.xml
+1
-0
mobile/src/main/res/values-jp/strings.xml
mobile/src/main/res/values-jp/strings.xml
+1
-0
mobile/src/main/res/values-ko/strings.xml
mobile/src/main/res/values-ko/strings.xml
+1
-0
mobile/src/main/res/values-zh/strings.xml
mobile/src/main/res/values-zh/strings.xml
+1
-0
mobile/src/main/res/values/strings.xml
mobile/src/main/res/values/strings.xml
+1
-0
No files found.
Classes/gframe/client_card.cpp
View file @
da563821
...
@@ -220,27 +220,29 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
...
@@ -220,27 +220,29 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
return
cp1
<
cp2
;
return
cp1
<
cp2
;
if
(
c1
->
location
!=
c2
->
location
)
if
(
c1
->
location
!=
c2
->
location
)
return
c1
->
location
<
c2
->
location
;
return
c1
->
location
<
c2
->
location
;
if
(
c1
->
location
&
LOCATION_OVERLAY
)
{
if
(
c1
->
location
==
LOCATION_OVERLAY
)
{
if
(
c1
->
overlayTarget
!=
c2
->
overlayTarget
)
if
(
c1
->
overlayTarget
!=
c2
->
overlayTarget
)
return
c1
->
overlayTarget
->
sequence
<
c2
->
overlayTarget
->
sequence
;
return
c1
->
overlayTarget
->
sequence
<
c2
->
overlayTarget
->
sequence
;
else
else
return
c1
->
sequence
<
c2
->
sequence
;
return
c1
->
sequence
<
c2
->
sequence
;
}
}
else
{
else
if
(
c1
->
location
==
LOCATION_DECK
)
{
if
(
c1
->
location
&
(
LOCATION_DECK
|
LOCATION_GRAVE
|
LOCATION_REMOVED
|
LOCATION_EXTRA
))
{
return
c1
->
sequence
>
c2
->
sequence
;
auto
it1
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c1
](
const
ChainInfo
&
ch
)
{
}
return
c1
==
ch
.
chain_card
||
ch
.
target
.
find
(
c1
)
!=
ch
.
target
.
end
();
else
if
(
c1
->
location
&
(
LOCATION_GRAVE
|
LOCATION_REMOVED
|
LOCATION_EXTRA
))
{
});
auto
it1
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c1
](
const
ChainInfo
&
ch
)
{
auto
it2
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c2
](
const
ChainInfo
&
ch
)
{
return
c1
==
ch
.
chain_card
||
ch
.
target
.
find
(
c1
)
!=
ch
.
target
.
end
();
return
c2
==
ch
.
chain_card
||
ch
.
target
.
find
(
c2
)
!=
ch
.
target
.
end
(
);
}
);
});
auto
it2
=
std
::
find_if
(
mainGame
->
dField
.
chains
.
rbegin
(),
mainGame
->
dField
.
chains
.
rend
(),
[
c2
](
const
ChainInfo
&
ch
)
{
if
(
it1
!=
mainGame
->
dField
.
chains
.
rend
()
||
it2
!=
mainGame
->
dField
.
chains
.
rend
())
{
return
c2
==
ch
.
chain_card
||
ch
.
target
.
find
(
c2
)
!=
ch
.
target
.
end
();
return
it1
<
it2
;
})
;
}
if
(
it1
!=
mainGame
->
dField
.
chains
.
rend
()
||
it2
!=
mainGame
->
dField
.
chains
.
rend
())
{
return
c1
->
sequence
>
c2
->
sequence
;
return
it1
<
it2
;
}
}
else
return
c1
->
sequence
>
c2
->
sequence
;
return
c1
->
sequence
<
c2
->
sequence
;
}
else
{
return
c1
->
sequence
<
c2
->
sequence
;
}
}
}
}
}
}
Classes/gframe/client_field.cpp
View file @
da563821
...
@@ -139,7 +139,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
...
@@ -139,7 +139,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
deck
[
player
].
push_back
(
pcard
);
deck
[
player
].
push_back
(
pcard
);
pcard
->
owner
=
player
;
pcard
->
owner
=
player
;
pcard
->
controler
=
player
;
pcard
->
controler
=
player
;
pcard
->
location
=
0x1
;
pcard
->
location
=
LOCATION_DECK
;
pcard
->
sequence
=
i
;
pcard
->
sequence
=
i
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
...
@@ -149,7 +149,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
...
@@ -149,7 +149,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
extra
[
player
].
push_back
(
pcard
);
extra
[
player
].
push_back
(
pcard
);
pcard
->
owner
=
player
;
pcard
->
owner
=
player
;
pcard
->
controler
=
player
;
pcard
->
controler
=
player
;
pcard
->
location
=
0x40
;
pcard
->
location
=
LOCATION_EXTRA
;
pcard
->
sequence
=
i
;
pcard
->
sequence
=
i
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
pcard
->
position
=
POS_FACEDOWN_DEFENSE
;
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
GetCardLocation
(
pcard
,
&
pcard
->
curPos
,
&
pcard
->
curRot
,
true
);
...
@@ -215,6 +215,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
...
@@ -215,6 +215,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
pcard
->
sequence
=
0
;
pcard
->
sequence
=
0
;
}
}
pcard
->
is_reversed
=
false
;
pcard
->
is_reversed
=
false
;
pcard
->
ClearData
();
pcard
->
ClearTarget
();
SetShowMark
(
pcard
,
false
);
break
;
break
;
}
}
case
LOCATION_HAND
:
{
case
LOCATION_HAND
:
{
...
...
Classes/gframe/event_handler.cpp
View file @
da563821
...
@@ -2747,19 +2747,19 @@ void ClientField::ShowCancelOrFinishButton(int buttonOp) {
...
@@ -2747,19 +2747,19 @@ void ClientField::ShowCancelOrFinishButton(int buttonOp) {
void
ClientField
::
SetShowMark
(
ClientCard
*
pcard
,
bool
enable
)
{
void
ClientField
::
SetShowMark
(
ClientCard
*
pcard
,
bool
enable
)
{
if
(
pcard
->
equipTarget
)
if
(
pcard
->
equipTarget
)
pcard
->
equipTarget
->
is_showequip
=
enable
;
pcard
->
equipTarget
->
is_showequip
=
enable
;
for
(
auto
cit
=
pcard
->
equipped
.
begin
();
cit
!=
pcard
->
equipped
.
end
();
++
cit
)
for
(
auto
&
card
:
pcard
->
equipped
)
(
*
cit
)
->
is_showequip
=
enable
;
card
->
is_showequip
=
enable
;
for
(
auto
cit
=
pcard
->
cardTarget
.
begin
();
cit
!=
pcard
->
cardTarget
.
end
();
++
ci
t
)
for
(
auto
&
card
:
pcard
->
cardTarge
t
)
(
*
cit
)
->
is_showtarget
=
enable
;
card
->
is_showtarget
=
enable
;
for
(
auto
cit
=
pcard
->
ownerTarget
.
begin
();
cit
!=
pcard
->
ownerTarget
.
end
();
++
ci
t
)
for
(
auto
&
card
:
pcard
->
ownerTarge
t
)
(
*
cit
)
->
is_showtarget
=
enable
;
card
->
is_showtarget
=
enable
;
for
(
auto
chit
=
chains
.
begin
();
chit
!=
chains
.
end
();
++
chit
)
{
for
(
auto
&
ch
:
chains
)
{
if
(
pcard
==
chit
->
chain_card
)
{
if
(
pcard
==
ch
.
chain_card
)
{
for
(
auto
tgit
=
chit
->
target
.
begin
();
tgit
!=
chit
->
target
.
end
();
++
tgi
t
)
for
(
auto
&
tg
:
ch
.
targe
t
)
(
*
tgit
)
->
is_showchaintarget
=
enable
;
tg
->
is_showchaintarget
=
enable
;
}
}
if
(
chit
->
target
.
find
(
pcard
)
!=
chit
->
target
.
end
())
if
(
ch
.
target
.
find
(
pcard
)
!=
ch
.
target
.
end
())
ch
it
->
chain_card
->
is_showchaintarget
=
enable
;
ch
.
chain_card
->
is_showchaintarget
=
enable
;
}
}
}
}
void
ClientField
::
ShowCardInfoInList
(
ClientCard
*
pcard
,
irr
::
gui
::
IGUIElement
*
element
,
irr
::
gui
::
IGUIElement
*
parent
)
{
void
ClientField
::
ShowCardInfoInList
(
ClientCard
*
pcard
,
irr
::
gui
::
IGUIElement
*
element
,
irr
::
gui
::
IGUIElement
*
parent
)
{
...
@@ -2768,26 +2768,28 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
...
@@ -2768,26 +2768,28 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
if
(
pcard
->
code
)
{
if
(
pcard
->
code
)
{
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
}
}
if
(
pcard
->
overlayTarget
)
{
if
(
pcard
->
location
!=
LOCATION_DECK
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
225
),
dataManager
.
GetName
(
pcard
->
overlayTarget
->
code
),
pcard
->
overlayTarget
->
sequence
+
1
);
if
(
pcard
->
overlayTarget
)
{
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
225
),
dataManager
.
GetName
(
pcard
->
overlayTarget
->
code
),
pcard
->
overlayTarget
->
sequence
+
1
);
}
if
((
pcard
->
status
&
STATUS_PROC_COMPLETE
)
&&
(
pcard
->
type
&
(
TYPE_RITUAL
|
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
|
TYPE_SPSUMMON
)))
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
auto
iter
=
pcard
->
desc_hints
.
begin
();
iter
!=
pcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
auto
chit
=
chains
[
i
];
if
(
pcard
==
chit
.
chain_card
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
216
),
i
+
1
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
}
if
(
chit
.
target
.
find
(
pcard
)
!=
chit
.
target
.
end
())
{
if
((
pcard
->
status
&
STATUS_PROC_COMPLETE
)
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
217
),
i
+
1
,
dataManager
.
GetName
(
chit
.
chain_card
->
code
));
&&
(
pcard
->
type
&
(
TYPE_RITUAL
|
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
|
TYPE_SPSUMMON
)))
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
auto
iter
=
pcard
->
desc_hints
.
begin
();
iter
!=
pcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
const
auto
&
chit
=
chains
[
i
];
if
(
pcard
==
chit
.
chain_card
)
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
216
),
i
+
1
);
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
if
(
chit
.
target
.
find
(
pcard
)
!=
chit
.
target
.
end
())
{
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
217
),
i
+
1
,
dataManager
.
GetName
(
chit
.
chain_card
->
code
));
str
.
append
(
L"
\n
"
).
append
(
formatBuffer
);
}
}
}
}
}
if
(
str
.
length
()
>
0
)
{
if
(
str
.
length
()
>
0
)
{
...
...
Classes/ocgcore/card.cpp
View file @
da563821
...
@@ -1044,22 +1044,43 @@ uint32_t card::get_ritual_level(card* pcard) {
...
@@ -1044,22 +1044,43 @@ uint32_t card::get_ritual_level(card* pcard) {
uint32_t
card
::
check_xyz_level
(
card
*
pcard
,
uint32_t
lv
)
{
uint32_t
card
::
check_xyz_level
(
card
*
pcard
,
uint32_t
lv
)
{
if
(
status
&
STATUS_NO_LEVEL
)
if
(
status
&
STATUS_NO_LEVEL
)
return
0
;
return
0
;
int32_t
min_count
=
0
;
effect_set
mset
;
filter_effect
(
EFFECT_XYZ_MIN_COUNT
,
&
mset
);
for
(
int32_t
i
=
0
;
i
<
mset
.
size
();
++
i
)
{
pduel
->
lua
->
add_param
(
this
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pcard
,
PARAM_TYPE_CARD
);
int32_t
count
=
mset
[
i
]
->
get_value
(
2
);
if
(
count
>
min_count
)
min_count
=
count
;
}
if
(
min_count
>
0xf
)
min_count
=
0xf
;
effect_set
eset
;
effect_set
eset
;
filter_effect
(
EFFECT_XYZ_LEVEL
,
&
eset
);
filter_effect
(
EFFECT_XYZ_LEVEL
,
&
eset
);
if
(
!
eset
.
size
())
{
if
(
!
eset
.
size
())
{
uint32_t
le
v
=
get_level
();
uint32_t
card_l
v
=
get_level
();
if
(
le
v
==
lv
)
if
(
card_l
v
==
lv
)
return
lev
;
return
(
card_lv
&
MAX_XYZ_LEVEL
)
|
((
uint32_t
)
min_count
<<
12
)
;
return
0
;
return
0
;
}
}
for
(
int32_t
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
eset
.
size
();
++
i
)
{
pduel
->
lua
->
add_param
(
this
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
this
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pcard
,
PARAM_TYPE_CARD
);
pduel
->
lua
->
add_param
(
pcard
,
PARAM_TYPE_CARD
);
uint32_t
lev
=
eset
[
i
]
->
get_value
(
2
);
uint32_t
lev
=
eset
[
i
]
->
get_value
(
2
);
if
(((
lev
&
0xfff
)
==
lv
))
uint16_t
lv1
=
lev
&
MAX_XYZ_LEVEL
;
return
lev
&
0xffff
;
uint16_t
count1
=
(
lev
&
0xf000
)
>>
12
;
if
(((
lev
>>
16
)
&
0xfff
)
==
lv
)
if
(
count1
<
min_count
)
return
(
lev
>>
16
)
&
0xffff
;
count1
=
min_count
;
if
(
lv1
==
lv
)
return
lv1
|
((
uint32_t
)
count1
<<
12
);
lev
>>=
16
;
uint16_t
lv2
=
lev
&
MAX_XYZ_LEVEL
;
uint16_t
count2
=
(
lev
&
0xf000
)
>>
12
;
if
(
count2
<
min_count
)
count2
=
min_count
;
if
(
lv2
==
lv
)
return
lv2
|
((
uint32_t
)
count2
<<
12
);
}
}
return
0
;
return
0
;
}
}
...
...
Classes/ocgcore/card.h
View file @
da563821
...
@@ -54,10 +54,10 @@ struct card_state {
...
@@ -54,10 +54,10 @@ struct card_state {
uint8_t
sequence
{
0
};
uint8_t
sequence
{
0
};
uint8_t
position
{
0
};
uint8_t
position
{
0
};
uint32_t
reason
{
0
};
uint32_t
reason
{
0
};
bool
pzone
{
false
};
card
*
reason_card
{
nullptr
};
card
*
reason_card
{
nullptr
};
uint8_t
reason_player
{
PLAYER_NONE
};
effect
*
reason_effect
{
nullptr
};
effect
*
reason_effect
{
nullptr
};
uint8_t
reason_player
{
PLAYER_NONE
};
bool
pzone
{
false
};
bool
is_location
(
uint32_t
loc
)
const
;
bool
is_location
(
uint32_t
loc
)
const
;
bool
is_main_mzone
()
const
{
bool
is_main_mzone
()
const
{
...
@@ -168,7 +168,7 @@ public:
...
@@ -168,7 +168,7 @@ public:
uint8_t
attacked_count
{};
uint8_t
attacked_count
{};
uint8_t
attack_all_target
{};
uint8_t
attack_all_target
{};
uint8_t
attack_controler
{};
uint8_t
attack_controler
{};
uint
16
_t
cardid
{};
uint
64
_t
cardid
{};
uint32_t
fieldid
{};
uint32_t
fieldid
{};
uint32_t
fieldid_r
{};
uint32_t
fieldid_r
{};
uint16_t
turnid
{};
uint16_t
turnid
{};
...
...
Classes/ocgcore/effect.h
View file @
da563821
...
@@ -529,6 +529,7 @@ const std::map<uint64_t, uint64_t> category_checklist{
...
@@ -529,6 +529,7 @@ const std::map<uint64_t, uint64_t> category_checklist{
#define EFFECT_TUNER 369
#define EFFECT_TUNER 369
#define EFFECT_KAISER_COLOSSEUM 370
#define EFFECT_KAISER_COLOSSEUM 370
#define EFFECT_REPLACE_DAMAGE 371
#define EFFECT_REPLACE_DAMAGE 371
#define EFFECT_XYZ_MIN_COUNT 372
//#define EVENT_STARTUP 1000
//#define EVENT_STARTUP 1000
#define EVENT_FLIP 1001
#define EVENT_FLIP 1001
...
@@ -606,8 +607,11 @@ const std::map<uint64_t, uint64_t> category_checklist{
...
@@ -606,8 +607,11 @@ const std::map<uint64_t, uint64_t> category_checklist{
#define EVENT_REMOVE_COUNTER 0x20000
#define EVENT_REMOVE_COUNTER 0x20000
#define EVENT_CUSTOM 0x10000000
#define EVENT_CUSTOM 0x10000000
constexpr
int32_t
DOUBLE_DAMAGE
=
0x80000000
;
constexpr
int32_t
DOUBLE_DAMAGE
=
INT32_MIN
;
constexpr
int32_t
HALF_DAMAGE
=
0x80000001
;
constexpr
int32_t
HALF_DAMAGE
=
INT32_MIN
+
1
;
constexpr
uint32_t
MAX_PARAMETER
=
0xffffU
;
constexpr
uint32_t
MAX_XYZ_LEVEL
=
0x0fffU
;
// flag effect
// flag effect
#define EFFECT_FLAG_EFFECT 0x20000000U
#define EFFECT_FLAG_EFFECT 0x20000000U
...
...
Classes/ocgcore/field.h
View file @
da563821
...
@@ -123,11 +123,11 @@ struct field_effect {
...
@@ -123,11 +123,11 @@ struct field_effect {
grant_effect_container
grant_effect
;
grant_effect_container
grant_effect
;
};
};
struct
field_info
{
struct
field_info
{
uint64_t
card_id
{
1
};
int32_t
field_id
{
1
};
int32_t
field_id
{
1
};
uint16_t
copy_id
{
1
};
uint16_t
copy_id
{
1
};
uint16_t
turn_id
{};
uint16_t
turn_id
{};
uint16_t
turn_id_by_player
[
2
]{};
uint16_t
turn_id_by_player
[
2
]{};
uint16_t
card_id
{
1
};
uint16_t
phase
{};
uint16_t
phase
{};
uint8_t
turn_player
{};
uint8_t
turn_player
{};
uint8_t
priorities
[
2
]{};
uint8_t
priorities
[
2
]{};
...
...
Classes/ocgcore/group.h
View file @
da563821
...
@@ -18,17 +18,17 @@ class duel;
...
@@ -18,17 +18,17 @@ class duel;
using
card_set
=
std
::
set
<
card
*
,
card_sort
>
;
using
card_set
=
std
::
set
<
card
*
,
card_sort
>
;
constexpr
in
t
GTYPE_DEFAULT
=
0
;
constexpr
uint32_
t
GTYPE_DEFAULT
=
0
;
constexpr
in
t
GTYPE_READ_ONLY
=
1
;
constexpr
uint32_
t
GTYPE_READ_ONLY
=
1
;
constexpr
in
t
GTYPE_KEEP_ALIVE
=
2
;
constexpr
uint32_
t
GTYPE_KEEP_ALIVE
=
2
;
class
group
{
class
alignas
(
8
)
group
{
public:
public:
int32_t
ref_handle
{
0
};
uint32_t
is_readonly
{
GTYPE_DEFAULT
};
duel
*
pduel
;
duel
*
pduel
;
card_set
container
;
card_set
container
;
card_set
::
iterator
it
;
card_set
::
iterator
it
;
int32_t
ref_handle
{
0
};
uint32_t
is_readonly
{
GTYPE_DEFAULT
};
bool
is_iterator_dirty
{
true
};
bool
is_iterator_dirty
{
true
};
bool
has_card
(
card
*
c
)
{
bool
has_card
(
card
*
c
)
{
...
...
mobile/assets/changelog.html
View file @
da563821
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
更新:
更新:
1.更新ygopro内核;
1.更新ygopro内核;
2.新卡1208+T1207+VJ;
2.新卡1208+T1207+VJ;
3.因网页证书要求不再支持安卓7.0以下系统;
3.新增人机卡组:雷火沸动;
4.因网页证书要求不再支持安卓7.0以下系统;
变更:
变更:
1.将决斗中的过宽的卡片显示为原始比例;
1.将决斗中的过宽的卡片显示为原始比例;
2.优化选卡窗口的布局以适应原始比例卡片;
2.优化选卡窗口的布局以适应原始比例卡片;
...
...
mobile/assets/data/conf/bot.conf
View file @
da563821
...
@@ -129,6 +129,11 @@ Name=复制梁龙 Deck=Salamangreat Dialog=anothercopy.zh-CN
...
@@ -129,6 +129,11 @@ Name=复制梁龙 Deck=Salamangreat Dialog=anothercopy.zh-CN
转生炎兽卡组。
转生炎兽卡组。
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!复制梁龙-雷火沸动
Name
=复制梁龙
Deck
=
Ryzeal
Dialog
=
anothercopy
.
zh
-
CN
初代雷火沸动卡组。
AI_LV4
SUPPORT_MASTER_RULE_3
SUPPORT_MASTER_RULE_2020
!
VI
-
1911
-凭依装着
!
VI
-
1911
-凭依装着
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
zh
-
CN
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
zh
-
CN
凭依装着卡组。
凭依装着卡组。
...
...
mobile/assets/data/windbot/windbot/Decks/AI_Ryzeal.ydk
0 → 100644
View file @
da563821
#created by ...
#main
8633261
8633261
8633261
35844557
35844557
35844557
72238166
34022970
34022970
34022970
42141493
42141493
84192580
87126721
14558127
14558127
14558127
59438930
59438930
23434538
23434538
94145021
97268402
97268402
97268402
7477101
7477101
7477101
25311006
35261759
35261759
85106525
24224830
24224830
60394026
65681983
6798031
10045474
10045474
10045474
#extra
9940036
34909328
34909328
2061963
7511613
7511613
45852939
45852939
6983839
90590303
46772449
16643334
21044178
66011101
8728498
!side
20292186
34267821
34267821
34267821
67173574
18144507
19613556
35269904
15693423
83326048
83326048
83326048
41420027
41420027
41420027
mobile/assets/en/data/conf/bot.conf
View file @
da563821
...
@@ -129,6 +129,11 @@ Name=CopyDiplodocus Deck=Salamangreat Dialog=anothercopy.en-EN
...
@@ -129,6 +129,11 @@ Name=CopyDiplodocus Deck=Salamangreat Dialog=anothercopy.en-EN
Salamangreat
Deck
Salamangreat
Deck
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!
CopyDiplodocus
-
Ryzeal
Name
=
CopyDiplodocus
Deck
=
Ryzeal
Dialog
=
anothercopy
.
en
-
EN
Ryzeal
Deck
AI_LV4
SUPPORT_MASTER_RULE_3
SUPPORT_MASTER_RULE_2020
!
VI
-
1911
-
Familiar
-
Possesed
!
VI
-
1911
-
Familiar
-
Possesed
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
en
-
EN
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
en
-
EN
Familiar
-
Possesed
Beat
Familiar
-
Possesed
Beat
...
...
mobile/assets/es/data/conf/bot.conf
View file @
da563821
...
@@ -129,6 +129,11 @@ Name=Diplodocus Deck=Salamangreat Dialog=anothercopy.es-ES
...
@@ -129,6 +129,11 @@ Name=Diplodocus Deck=Salamangreat Dialog=anothercopy.es-ES
Baraja
meta
de
fuego
,
"Salamangrande"
sabe
como
encender
el
duelo
en
llamas
cuando
menos
te
lo
esperas
.
Baraja
meta
de
fuego
,
"Salamangrande"
sabe
como
encender
el
duelo
en
llamas
cuando
menos
te
lo
esperas
.
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!
CopyDiplodocus
-
Ryzeal
Name
=
Diplodocus
Deck
=
Ryzeal
Dialog
=
anothercopy
.
es
-
ES
Ryzeal
Deck
AI_LV4
SUPPORT_MASTER_RULE_3
SUPPORT_MASTER_RULE_2020
!
VI
-
1911
-
Familiar
Pose
í
do
!
VI
-
1911
-
Familiar
Pose
í
do
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
es
-
ES
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
es
-
ES
Que
su
nombre
no
te
enga
ñ
e
,
esta
baraja
est
á
reforzada
con
un
engine
de
cartas
antimeta
muy
molesto
.
Que
su
nombre
no
te
enga
ñ
e
,
esta
baraja
est
á
reforzada
con
un
engine
de
cartas
antimeta
muy
molesto
.
...
...
mobile/assets/jp/data/conf/bot.conf
View file @
da563821
...
@@ -122,13 +122,18 @@ AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
...
@@ -122,13 +122,18 @@ AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!リプロドクス-オルフェゴール
!リプロドクス-オルフェゴール
Name
=复制梁龙
Deck
=
Orcust
Dialog
=
anothercopy
.
zh
-
CN
Name
=复制梁龙
Deck
=
Orcust
Dialog
=
anothercopy
.
zh
-
CN
オルフェゴールデッキ。
オルフェゴールデッキ。
AI_LV
4
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV
3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!リプロドクス-サラマングレイト
!リプロドクス-サラマングレイト
Name
=
复制梁龙
Deck
=
Salamangreat
Dialog
=
anothercopy
.
zh
-
CN
Name
=
リプロドクス
Deck
=
Salamangreat
Dialog
=
anothercopy
.
zh
-
CN
サラマングレイトデッキ。
サラマングレイトデッキ。
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!リプロドクス-ライゼオル
Name
=
CopyDiplodocus
Deck
=
Ryzeal
Dialog
=
anothercopy
.
zh
-
CN
ライゼオル
AI_LV4
SUPPORT_MASTER_RULE_3
SUPPORT_MASTER_RULE_2020
!
VI
-
1911
-憑依装着
!
VI
-
1911
-憑依装着
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
zh
-
CN
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
zh
-
CN
憑依装着を中心としたメタデッキ。
憑依装着を中心としたメタデッキ。
...
...
mobile/assets/kor/data/conf/bot.conf
View file @
da563821
...
@@ -129,6 +129,11 @@ Name=카카시 Deck=Salamangreat Dialog=anothercopy.kor
...
@@ -129,6 +129,11 @@ Name=카카시 Deck=Salamangreat Dialog=anothercopy.kor
샐러맨그레이트 덱입니다. (신 마스터 룰|마스터 룰 개정판 사용 가능)
샐러맨그레이트 덱입니다. (신 마스터 룰|마스터 룰 개정판 사용 가능)
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
AI_LV3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!카카시-라이제올
Name
=카카시
Deck
=
Ryzeal
Dialog
=
anothercopy
.
kor
라이제올 덱입니다.
AI_LV4
SUPPORT_MASTER_RULE_3
SUPPORT_MASTER_RULE_2020
!
VI
-
1911
-빙의장착
!
VI
-
1911
-빙의장착
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
kor
Name
=
VI
-
1911
Deck
=
FamiliarPossessed
Dialog
=
VI
-
1911
.
kor
빙의장착 덱입니다. (마스터 룰
3
|신 마스터 룰|마스터 룰 개정판 사용 가능)
빙의장착 덱입니다. (마스터 룰
3
|신 마스터 룰|마스터 룰 개정판 사용 가능)
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/home/HomeFragment.java
View file @
da563821
...
@@ -573,6 +573,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
...
@@ -573,6 +573,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
@Override
@Override
public
void
onSaveDeck
(
Uri
uri
,
List
<
Integer
>
mainList
,
List
<
Integer
>
exList
,
List
<
Integer
>
sideList
,
boolean
isCompleteDeck
,
String
exception
,
int
id
)
{
public
void
onSaveDeck
(
Uri
uri
,
List
<
Integer
>
mainList
,
List
<
Integer
>
exList
,
List
<
Integer
>
sideList
,
boolean
isCompleteDeck
,
String
exception
,
int
id
)
{
activity
.
startPermissionsActivity
();
saveDeck
(
uri
,
mainList
,
exList
,
sideList
,
isCompleteDeck
,
exception
,
id
!=
DefWebViewClient
.
CHECK_ID_WEB_VIEW_NEW_ACTIVITY
);
saveDeck
(
uri
,
mainList
,
exList
,
sideList
,
isCompleteDeck
,
exception
,
id
!=
DefWebViewClient
.
CHECK_ID_WEB_VIEW_NEW_ACTIVITY
);
}
}
...
...
mobile/src/main/res/values-es/strings.xml
View file @
da563821
...
@@ -318,6 +318,7 @@
...
@@ -318,6 +318,7 @@
\nRestaurar: restaurar los decks respaldados
</string>
\nRestaurar: restaurar los decks respaldados
</string>
<string
name=
"restore_deck"
>
Se encontraron decks respaldados en su dispositivo, ¿desea restaurarlos?
</string>
<string
name=
"restore_deck"
>
Se encontraron decks respaldados en su dispositivo, ¿desea restaurarlos?
</string>
<string
name=
"explain_permission"
>
El uso de estas funciones requiere los siguientes permisos:
<string
name=
"explain_permission"
>
El uso de estas funciones requiere los siguientes permisos:
\nPermiso del portapapeles: Necesario para leer códigos de mazo y códigos de partido
\nPermiso de Almacenamiento: necesario para respaldar y restaurar decks; para personalizar fuentes, fondos, avatares y cubiertas de cartas
\nPermiso de Almacenamiento: necesario para respaldar y restaurar decks; para personalizar fuentes, fondos, avatares y cubiertas de cartas
</string>
</string>
<string
name=
"guide_menu"
>
Menú:\nFunciones principales como:
</string>
<string
name=
"guide_menu"
>
Menú:\nFunciones principales como:
</string>
...
...
mobile/src/main/res/values-jp/strings.xml
View file @
da563821
...
@@ -324,6 +324,7 @@
...
@@ -324,6 +324,7 @@
<string
name=
"restore_deck"
>
復元記録を発見しました,復元をしますか?
</string>
<string
name=
"restore_deck"
>
復元記録を発見しました,復元をしますか?
</string>
<string
name=
"explain_permission"
>
<string
name=
"explain_permission"
>
このソート使用する為に以下の権限を許してください:
このソート使用する為に以下の権限を許してください:
\nクリップボードの権限:デッキコードや対戦コードの読み取りに必要
\nセーブ権限:バックアップ、復元デッキ,壁紙カスタマイズ、アバタ、プロテクター必須
</string>
\nセーブ権限:バックアップ、復元デッキ,壁紙カスタマイズ、アバタ、プロテクター必須
</string>
<string
name=
"guide_menu"
>
機能メニュー:\n主の機能は"
</string>
<string
name=
"guide_menu"
>
機能メニュー:\n主の機能は"
</string>
<string
name=
"guide_mycard"
>
MYCARDプラットホーム:\n対戦サーバーを提供します\nランキング,観戦,チャット
</string>
<string
name=
"guide_mycard"
>
MYCARDプラットホーム:\n対戦サーバーを提供します\nランキング,観戦,チャット
</string>
...
...
mobile/src/main/res/values-ko/strings.xml
View file @
da563821
...
@@ -322,6 +322,7 @@
...
@@ -322,6 +322,7 @@
<string
name=
"restore_deck"
>
기기에서 백업된 덱을 발견했습니다. 복원하시겠습니까?
</string>
<string
name=
"restore_deck"
>
기기에서 백업된 덱을 발견했습니다. 복원하시겠습니까?
</string>
<string
name=
"explain_permission"
>
<string
name=
"explain_permission"
>
이 앱의 기능을 사용하려면 다음과 같은 필수 권한이 적용됩니다:
이 앱의 기능을 사용하려면 다음과 같은 필수 권한이 적용됩니다:
\n 클립보드 권한: 덱 코드 및 대전 코드 읽기 필수
\n 저장소 권한:백업, 덱 복원, 사용자 지정 배경, 아바타, 카드 커버 필요
</string>
\n 저장소 권한:백업, 덱 복원, 사용자 지정 배경, 아바타, 카드 커버 필요
</string>
<string
name=
"guide_menu"
>
기능 메뉴:\n앱의 주요 기능은 다음 과 같습니다
</string>
<string
name=
"guide_menu"
>
기능 메뉴:\n앱의 주요 기능은 다음 과 같습니다
</string>
<string
name=
"guide_mycard"
>
MyCard:\n랭킹, 듀얼 관전, 채팅 및 포럼 등 \n 다양한 듀얼 서비스를 제공합니다
</string>
<string
name=
"guide_mycard"
>
MyCard:\n랭킹, 듀얼 관전, 채팅 및 포럼 등 \n 다양한 듀얼 서비스를 제공합니다
</string>
...
...
mobile/src/main/res/values-zh/strings.xml
View file @
da563821
...
@@ -324,6 +324,7 @@
...
@@ -324,6 +324,7 @@
<string
name=
"restore_deck"
>
发现本机有卡组备份记录,是否还原?
</string>
<string
name=
"restore_deck"
>
发现本机有卡组备份记录,是否还原?
</string>
<string
name=
"explain_permission"
>
<string
name=
"explain_permission"
>
使用本软件此类功能将申请以下必要权限:
使用本软件此类功能将申请以下必要权限:
\n剪贴板权限:读取卡组码、约战码必需
\n存储权限:备份、还原卡组,自定义背景、头像、卡背必需
</string>
\n存储权限:备份、还原卡组,自定义背景、头像、卡背必需
</string>
<string
name=
"guide_menu"
>
功能菜单:\n主要功能如"
</string>
<string
name=
"guide_menu"
>
功能菜单:\n主要功能如"
</string>
<string
name=
"guide_mycard"
>
萌卡平台:\n提供众多对战服务\n包含排位,观战,聊天与论坛等
</string>
<string
name=
"guide_mycard"
>
萌卡平台:\n提供众多对战服务\n包含排位,观战,聊天与论坛等
</string>
...
...
mobile/src/main/res/values/strings.xml
View file @
da563821
...
@@ -323,6 +323,7 @@
...
@@ -323,6 +323,7 @@
<string
name=
"restore_deck"
>
found backed up decks in your Device\, restore\?
</string>
<string
name=
"restore_deck"
>
found backed up decks in your Device\, restore\?
</string>
<string
name=
"explain_permission"
>
<string
name=
"explain_permission"
>
Very necessary permissions will be applied\:
Very necessary permissions will be applied\:
\nClipboard permission: Required for reading deck codes and match codes
\nStorage Access\:backup\/restore deck\,set custom background\/avatars\/cardback
</string>
\nStorage Access\:backup\/restore deck\,set custom background\/avatars\/cardback
</string>
<string
name=
"guide_menu"
>
Menu\:\nincluding most of functions, for Example
</string>
<string
name=
"guide_menu"
>
Menu\:\nincluding most of functions, for Example
</string>
<string
name=
"guide_mycard"
>
Mycard\: rank duel record, observe games, chating room, etc.
</string>
<string
name=
"guide_mycard"
>
Mycard\: rank duel record, observe games, chating room, etc.
</string>
...
...
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