Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-rush-duel
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
4
Issues
4
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
MyCard
ygopro-rush-duel
Commits
0b17799d
Commit
0b17799d
authored
Jun 04, 2023
by
未闻皂名
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2023/6/4 新增:环幻乐姬 动作旋律 添加将返回卡组上面或下面的Cost
parent
5563b533
Pipeline
#22106
passed with stages
in 6 minutes and 51 seconds
Changes
8
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
69 additions
and
33 deletions
+69
-33
RD Patch.cdb
RD Patch.cdb
+0
-0
RD Standard.cdb
RD Standard.cdb
+0
-0
script/RDAction.lua
script/RDAction.lua
+9
-9
script/RDCost.lua
script/RDCost.lua
+19
-0
script/c120196037.lua
script/c120196037.lua
+1
-8
script/c120205044.lua
script/c120205044.lua
+1
-8
script/c120244034.lua
script/c120244034.lua
+1
-8
script/c120247020.lua
script/c120247020.lua
+38
-0
No files found.
RD Patch.cdb
View file @
0b17799d
No preview for this file type
RD Standard.cdb
View file @
0b17799d
No preview for this file type
script/RDAction.lua
View file @
0b17799d
...
@@ -235,35 +235,35 @@ end
...
@@ -235,35 +235,35 @@ end
-- 操作: 返回卡组
-- 操作: 返回卡组
function
RushDuel
.
SendToDeckAndExists
(
target
,
filter
,
count
,
expect
)
function
RushDuel
.
SendToDeckAndExists
(
target
,
filter
,
count
,
expect
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
~=
0
and
RushDuel
.
IsOperatedGroupExists
(
filter
,
count
,
expect
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKSHUFFLE
,
REASON_EFFECT
)
~=
0
and
RushDuel
.
IsOperatedGroupExists
(
filter
,
count
,
expect
)
end
end
-- 操作: 返回卡组上面 (排序)
-- 操作: 返回卡组上面 (排序)
function
RushDuel
.
SendToDeckTop
(
target
,
sort_player
,
target_player
,
sort
)
function
RushDuel
.
SendToDeckTop
(
target
,
sort_player
,
target_player
,
sort
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
if
sort
then
if
sort
then
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
0
,
REASON_EFFECT
,
sort_player
,
target_player
)
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
SEQ_DECKTOP
,
REASON_EFFECT
,
sort_player
,
target_player
)
return
ct
return
ct
else
else
return
Duel
.
SendtoDeck
(
g
,
nil
,
0
,
REASON_EFFECT
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKTOP
,
REASON_EFFECT
)
end
end
end
end
-- 操作: 返回卡组下面 (排序)
-- 操作: 返回卡组下面 (排序)
function
RushDuel
.
SendToDeckBottom
(
target
,
sort_player
,
target_player
,
sort
)
function
RushDuel
.
SendToDeckBottom
(
target
,
sort_player
,
target_player
,
sort
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
if
sort
then
if
sort
then
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
1
,
REASON_EFFECT
,
sort_player
,
target_player
)
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
SEQ_DECKBOTTOM
,
REASON_EFFECT
,
sort_player
,
target_player
)
return
ct
return
ct
else
else
return
Duel
.
SendtoDeck
(
g
,
nil
,
1
,
REASON_EFFECT
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKBOTTOM
,
REASON_EFFECT
)
end
end
end
end
-- 操作: 返回对方卡组上面 (排序)
-- 操作: 返回对方卡组上面 (排序)
function
RushDuel
.
SendToOpponentDeckTop
(
target
,
player
)
function
RushDuel
.
SendToOpponentDeckTop
(
target
,
player
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
if
g
:
GetCount
()
==
1
then
if
g
:
GetCount
()
==
1
then
return
Duel
.
SendtoDeck
(
g
,
nil
,
0
,
REASON_EFFECT
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKTOP
,
REASON_EFFECT
)
else
else
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
0
,
REASON_EFFECT
,
player
,
1
-
player
)
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
SEQ_DECKTOP
,
REASON_EFFECT
,
player
,
1
-
player
)
return
ct
return
ct
end
end
end
end
...
@@ -271,9 +271,9 @@ end
...
@@ -271,9 +271,9 @@ end
function
RushDuel
.
SendToOpponentDeckBottom
(
target
,
player
)
function
RushDuel
.
SendToOpponentDeckBottom
(
target
,
player
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
local
g
=
RushDuel
.
ToMaximunGroup
(
target
)
if
g
:
GetCount
()
==
1
then
if
g
:
GetCount
()
==
1
then
return
Duel
.
SendtoDeck
(
g
,
nil
,
1
,
REASON_EFFECT
)
return
Duel
.
SendtoDeck
(
g
,
nil
,
SEQ_DECKBOTTOM
,
REASON_EFFECT
)
else
else
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
1
,
REASON_EFFECT
,
player
,
1
-
player
)
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
SEQ_DECKBOTTOM
,
REASON_EFFECT
,
player
,
1
-
player
)
return
ct
return
ct
end
end
end
end
...
...
script/RDCost.lua
View file @
0b17799d
...
@@ -52,6 +52,16 @@ function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selectio
...
@@ -52,6 +52,16 @@ function RushDuel._private_action_send_deck_sort(sequence, reason, hint_selectio
RushDuel
.
SetLabelAndObject
(
e
,
og
,
set_label_after
,
set_object_after
)
RushDuel
.
SetLabelAndObject
(
e
,
og
,
set_label_after
,
set_object_after
)
end
end
end
end
-- 内部方法: 返回卡组上面或下面动作
function
RushDuel
.
_private_action_send_deck_top_or_bottom
(
top_desc
,
bottom_desc
,
reason
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
function
(
g
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
RushDuel
.
HintOrConfirm
(
g
,
hint_selection
,
confirm
,
1
-
tp
)
RushDuel
.
SetLabelAndObject
(
e
,
g
,
set_label_before
,
set_object_before
)
local
sequence
=
Duel
.
SelectOption
(
tp
,
top_desc
,
bottom_desc
)
local
og
,
ct
=
RushDuel
.
SendToDeckSort
(
g
,
sequence
,
reason
,
tp
,
tp
)
RushDuel
.
SetLabelAndObject
(
e
,
og
,
set_label_after
,
set_object_after
)
end
end
-- 内部方法: 返回手卡动作
-- 内部方法: 返回手卡动作
function
RushDuel
.
_private_action_send_hand
(
reason
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
function
RushDuel
.
_private_action_send_hand
(
reason
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
function
(
g
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
return
function
(
g
,
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
...
@@ -89,6 +99,11 @@ function RushDuel.CostSendGroupToDeckSort(filter, check, field, min, max, except
...
@@ -89,6 +99,11 @@ function RushDuel.CostSendGroupToDeckSort(filter, check, field, min, max, except
local
action
=
RushDuel
.
_private_action_send_deck_sort
(
sequence
,
REASON_COST
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
local
action
=
RushDuel
.
_private_action_send_deck_sort
(
sequence
,
REASON_COST
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
_private_cost_select_group
(
HINTMSG_TODECK
,
filter
,
check
,
field
,
0
,
min
,
max
,
except_self
,
action
)
return
RushDuel
.
_private_cost_select_group
(
HINTMSG_TODECK
,
filter
,
check
,
field
,
0
,
min
,
max
,
except_self
,
action
)
end
end
-- 代价: 选择匹配卡片, 返回卡组上面或下面
function
RushDuel
.
CostSendMatchToDeckTopOrBottom
(
filter
,
field
,
min
,
max
,
except_self
,
top_desc
,
bottom_desc
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
local
action
=
RushDuel
.
_private_action_send_deck_top_or_bottom
(
top_desc
,
bottom_desc
,
REASON_COST
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
_private_cost_select_match
(
HINTMSG_TODECK
,
filter
,
field
,
0
,
min
,
max
,
except_self
,
action
)
end
-- 代价: 选择匹配卡片, 返回手卡
-- 代价: 选择匹配卡片, 返回手卡
function
RushDuel
.
CostSendMatchToHand
(
filter
,
field
,
min
,
max
,
except_self
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
function
RushDuel
.
CostSendMatchToHand
(
filter
,
field
,
min
,
max
,
except_self
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
local
action
=
RushDuel
.
_private_action_send_hand
(
REASON_COST
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
local
action
=
RushDuel
.
_private_action_send_hand
(
REASON_COST
,
hint_selection
,
confirm
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
...
@@ -222,6 +237,10 @@ end
...
@@ -222,6 +237,10 @@ end
function
RushDuel
.
CostSendGraveSubToDeckBottom
(
filter
,
check
,
min
,
max
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
function
RushDuel
.
CostSendGraveSubToDeckBottom
(
filter
,
check
,
min
,
max
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
CostSendGroupToDeckSort
(
filter
,
check
,
LOCATION_GRAVE
,
min
,
max
,
false
,
SEQ_DECKBOTTOM
,
false
,
true
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
CostSendGroupToDeckSort
(
filter
,
check
,
LOCATION_GRAVE
,
min
,
max
,
false
,
SEQ_DECKBOTTOM
,
false
,
true
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
end
end
-- 代价: 让墓地的卡返回卡组上面或下面
function
RushDuel
.
CostSendGraveToDeckTopOrBottom
(
filter
,
min
,
max
,
top_desc
,
bottom_desc
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
CostSendMatchToDeckTopOrBottom
(
filter
,
LOCATION_GRAVE
,
min
,
max
,
false
,
top_desc
,
bottom_desc
,
false
,
true
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
end
-- 代价: 把怪兽返回手卡
-- 代价: 把怪兽返回手卡
function
RushDuel
.
CostSendMZoneToHand
(
filter
,
min
,
max
,
except_self
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
function
RushDuel
.
CostSendMZoneToHand
(
filter
,
min
,
max
,
except_self
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
CostSendMatchToHand
(
filter
,
LOCATION_MZONE
,
min
,
max
,
except_self
,
false
,
true
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
return
RushDuel
.
CostSendMatchToHand
(
filter
,
LOCATION_MZONE
,
min
,
max
,
except_self
,
false
,
true
,
set_label_before
,
set_object_before
,
set_label_after
,
set_object_after
)
...
...
script/c120196037.lua
View file @
0b17799d
...
@@ -26,14 +26,7 @@ end
...
@@ -26,14 +26,7 @@ end
function
cm
.
thfilter
(
c
)
function
cm
.
thfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToHand
()
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToHand
()
end
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
cm
.
cost
=
RD
.
CostSendGraveToDeckTopOrBottom
(
cm
.
costfilter
,
1
,
1
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
local
op
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
Duel
.
SendtoDeck
(
g
,
nil
,
op
,
REASON_COST
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
...
...
script/c120205044.lua
View file @
0b17799d
...
@@ -23,14 +23,7 @@ end
...
@@ -23,14 +23,7 @@ end
function
cm
.
tdfilter
(
c
)
function
cm
.
tdfilter
(
c
)
return
c
:
IsType
(
TYPE_NORMAL
)
and
c
:
IsAbleToDeck
()
return
c
:
IsType
(
TYPE_NORMAL
)
and
c
:
IsAbleToDeck
()
end
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
cm
.
cost
=
RD
.
CostSendGraveToDeckTopOrBottom
(
cm
.
costfilter
,
1
,
1
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
local
opt
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
Duel
.
SendtoDeck
(
g
,
nil
,
opt
,
REASON_COST
)
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
local
c
=
e
:
GetHandler
()
local
c
=
e
:
GetHandler
()
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
if
c
:
IsFaceup
()
and
c
:
IsRelateToEffect
(
e
)
then
...
...
script/c120244034.lua
View file @
0b17799d
...
@@ -29,14 +29,7 @@ end
...
@@ -29,14 +29,7 @@ end
function
cm
.
spfilter
(
c
,
e
,
tp
)
function
cm
.
spfilter
(
c
,
e
,
tp
)
return
c
:
IsType
(
TYPE_NORMAL
)
and
c
:
IsRace
(
RACE_GALAXY
)
and
RD
.
IsCanBeSpecialSummoned
(
c
,
e
,
tp
,
POS_FACEUP
)
return
c
:
IsType
(
TYPE_NORMAL
)
and
c
:
IsRace
(
RACE_GALAXY
)
and
RD
.
IsCanBeSpecialSummoned
(
c
,
e
,
tp
,
POS_FACEUP
)
end
end
function
cm
.
cost
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
cm
.
cost
=
RD
.
CostSendGraveToDeckTopOrBottom
(
cm
.
costfilter
,
1
,
1
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
nil
)
end
Duel
.
Hint
(
HINT_SELECTMSG
,
tp
,
HINTMSG_TODECK
)
local
g
=
Duel
.
SelectMatchingCard
(
tp
,
cm
.
costfilter
,
tp
,
LOCATION_GRAVE
,
0
,
1
,
1
,
nil
)
Duel
.
ConfirmCards
(
1
-
tp
,
g
)
local
opt
=
Duel
.
SelectOption
(
tp
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
))
Duel
.
SendtoDeck
(
g
,
nil
,
opt
,
REASON_COST
)
end
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
if
chk
==
0
then
return
Duel
.
IsPlayerCanDraw
(
tp
,
1
)
end
RD
.
TargetDraw
(
tp
,
1
)
RD
.
TargetDraw
(
tp
,
1
)
...
...
script/c120247020.lua
0 → 100644
View file @
0b17799d
local
m
=
120247020
local
list
=
{
120247025
,
120247031
,
120151036
,
120196050
}
local
cm
=
_G
[
"c"
..
m
]
cm
.
name
=
"环幻乐姬 动作旋律"
function
cm
.
initial_effect
(
c
)
RD
.
AddCodeList
(
c
,
list
)
--Fusion Material
RD
.
AddFusionProcedure
(
c
,
list
[
1
],
list
[
2
])
--Atk Up
local
e1
=
Effect
.
CreateEffect
(
c
)
e1
:
SetDescription
(
aux
.
Stringid
(
m
,
0
))
e1
:
SetCategory
(
CATEGORY_ATKCHANGE
+
CATEGORY_DEFCHANGE
)
e1
:
SetType
(
EFFECT_TYPE_IGNITION
)
e1
:
SetRange
(
LOCATION_MZONE
)
e1
:
SetCost
(
cm
.
cost
)
e1
:
SetTarget
(
cm
.
target
)
e1
:
SetOperation
(
cm
.
operation
)
c
:
RegisterEffect
(
e1
)
end
--Atk Up
function
cm
.
costfilter
(
c
)
return
c
:
IsType
(
TYPE_SPELL
)
and
c
:
IsAbleToDeckOrExtraAsCost
()
end
cm
.
cost
=
RD
.
CostSendGraveToDeckTopOrBottom
(
cm
.
costfilter
,
1
,
1
,
aux
.
Stringid
(
m
,
1
),
aux
.
Stringid
(
m
,
2
),
nil
,
nil
,
function
(
g
)
return
g
:
GetFirst
():
GetCode
()
end
)
function
cm
.
target
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
,
chk
)
if
chk
==
0
then
return
Duel
.
IsExistingMatchingCard
(
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_MZONE
,
1
,
nil
)
end
end
function
cm
.
operation
(
e
,
tp
,
eg
,
ep
,
ev
,
re
,
r
,
rp
)
RD
.
SelectAndDoAction
(
aux
.
Stringid
(
m
,
3
),
Card
.
IsFaceup
,
tp
,
0
,
LOCATION_MZONE
,
1
,
1
,
nil
,
function
(
g
)
RD
.
AttachAtkDef
(
e
,
g
:
GetFirst
(),
-
2000
,
-
2000
,
RESET_EVENT
+
RESETS_STANDARD
+
RESET_PHASE
+
PHASE_END
+
RESET_OPPO_TURN
)
local
code
=
e
:
GetLabel
()
if
(
code
==
list
[
3
]
or
code
==
list
[
4
])
then
RD
.
CanDraw
(
aux
.
Stringid
(
m
,
4
),
tp
,
1
)
end
end
)
end
\ No newline at end of file
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