Skip to content

Commit 9cd5ec2

Browse files
committed
handle skill cards
1 parent 3d8a5b1 commit 9cd5ec2

File tree

3 files changed

+39
-17
lines changed

3 files changed

+39
-17
lines changed

lib/cardian/api/ygoprodeck.ex

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ defmodule Cardian.Api.Ygoprodeck do
7171
String.contains?(type, "monster") -> :monster
7272
String.contains?(type, "spell") -> :spell
7373
String.contains?(type, "trap") -> :trap
74+
String.contains?(type, "skill") -> :skill
7475
:otherwise -> nil
7576
end
7677
end

lib/cardian/builder.ex

+18-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ defmodule Cardian.Builder do
77

88
@spell_trap_icons %{
99
spell: "<:spell:948992874438070342>",
10-
trap: "<:trap:948992874438074428>"
10+
trap: "<:trap:948992874438074428>",
11+
skill: "Skill"
1112
}
1213

1314
@rarity_icons %{
@@ -87,6 +88,7 @@ defmodule Cardian.Builder do
8788
defp put_format_footer(embed, :paper), do: put_footer(embed, "Format: Paper")
8889
defp put_format_footer(embed, :md), do: put_footer(embed, "Format: Master Duel")
8990
defp put_format_footer(embed, :dl), do: put_footer(embed, "Format: Duel Links")
91+
defp put_format_footer(embed, :sd), do: put_footer(embed, "Format: Speed Duel")
9092

9193
defp put_ocg_footer(embed, %Card{ocg: true}) do
9294
embed
@@ -166,6 +168,9 @@ defmodule Cardian.Builder do
166168
:paper ->
167169
"**Attribute**: #{@attribute_icons[card.attribute]}"
168170

171+
:sd ->
172+
"**Attribute**: #{@attribute_icons[card.attribute]}"
173+
169174
:md ->
170175
"**Attribute**: #{@attribute_icons[card.attribute]} #{put_card_rarity(card.rarity_md)}"
171176

@@ -192,6 +197,9 @@ defmodule Cardian.Builder do
192197
:paper ->
193198
"**Type**: #{@spell_trap_icons[card.type]} #{@card_type_icons[card.race]}"
194199

200+
:sd ->
201+
"**Type**: #{@spell_trap_icons[card.type]} #{@card_type_icons[card.race]}"
202+
195203
:md ->
196204
"**Type**: #{@spell_trap_icons[card.type]} #{@card_type_icons[card.race]} #{put_card_rarity(card.rarity_md)}"
197205

@@ -229,6 +237,10 @@ defmodule Cardian.Builder do
229237
"**Status**: #{status_icon(card.status_dl)}"
230238
end
231239

240+
defp put_card_status(%Card{} = _card, :sd) do
241+
""
242+
end
243+
232244
defp status_icon(status) when is_map_key(@status_icons, status) do
233245
@status_icons[status]
234246
end
@@ -259,8 +271,9 @@ defmodule Cardian.Builder do
259271

260272
defp put_monster_atk(embed, _card), do: embed
261273

262-
defp build_sets(%Card{} = card, :paper)
263-
when is_list(card.sets_paper) and length(card.sets_paper) > 0 do
274+
defp build_sets(%Card{} = card, format)
275+
when format in [:paper, :sd] and
276+
is_list(card.sets_paper) and length(card.sets_paper) > 0 do
264277
card.sets_paper
265278
|> Enum.map(&"[#{&1}](#{@set_base_url}#{&1})")
266279
|> truncate_sets()
@@ -319,6 +332,8 @@ defmodule Cardian.Builder do
319332

320333
defp get_card_color(%Card{type: :trap}), do: 12_343_940
321334

335+
defp get_card_color(%Card{type: :skill}), do: 26_316
336+
322337
defp get_card_color(%Card{type: :monster, monster_type: type}) do
323338
case type do
324339
:normal ->

lib/cardian/interactions.ex

+20-14
Original file line numberDiff line numberDiff line change
@@ -112,26 +112,32 @@ defmodule Cardian.Interactions do
112112
case CardRegistry.get_card(card) do
113113
[c | _] ->
114114
format =
115-
case Enum.find(options, &(&1.name == "format")) do
116-
%{name: "format", value: "paper"} ->
117-
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :paper})
115+
case c.type do
116+
:skill ->
117+
:sd
118118

119-
:paper
119+
_ ->
120+
case Enum.find(options, &(&1.name == "format")) do
121+
%{name: "format", value: "paper"} ->
122+
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :paper})
120123

121-
%{name: "format", value: "md"} ->
122-
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :md})
124+
:paper
123125

124-
:md
126+
%{name: "format", value: "md"} ->
127+
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :md})
125128

126-
%{name: "format", value: "dl"} ->
127-
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :dl})
129+
:md
128130

129-
:dl
131+
%{name: "format", value: "dl"} ->
132+
UserConfigs.create_or_update_config(%{discord_id: user_id, format: :dl})
130133

131-
_ ->
132-
case UserConfigs.get_config_by_discord_id(user_id) do
133-
%UserConfig{format: f} -> f
134-
_ -> :paper
134+
:dl
135+
136+
_ ->
137+
case UserConfigs.get_config_by_discord_id(user_id) do
138+
%UserConfig{format: f} -> f
139+
_ -> :paper
140+
end
135141
end
136142
end
137143

0 commit comments

Comments
 (0)